Grease bottom of a 9x13 baking pan.
Gather all the bread you will be using and rip them into cubes. Fill the bottom of the baking dish.
Mix milk, half and half, eggs, sugar and vanilla, and pour over the top of the bread cubes, making sure to pour evenly.
Cover the pan with foil and store in the refrigerator overnight.
For the topping, cut butter into cubes. Add flour, brown sugar, cinnamon and salt. Store in a ziplock bag in the refrigerator until morning.
The next morning when you're ready to bake, preheat your oven to 350 degrees.
Remove the French toast casserole from the refrigerator and sprinkle the topping evenly over the top of it. Make sure the butter is evenly dispersed.
Bake with foil removed for 45 min to 1 hour, depending on your oven and how crispy you like the top.
Serve with warmed ample syrup and fruit if you would like!