Cut the brioche or challah loaf into roughly 1 inch cubes, keeping the crust on for extra texture. Spread the cubes out on a baking sheet and let them sit uncovered for a few hours, or overnight, so they dry out slightly.
Grease a 9x13 inch baking dish with butter, then add the bread cubes in an even layer.
In a large mixing bowl, whisk together the eggs, whole milk, and half and half until fully combined. Add the granulated sugar, vanilla extract, ground cinnamon, nutmeg, and salt, and whisk until the sugar has mostly dissolved and the mixture looks smooth and pale yellow.
Whisk in the melted butter last, drizzling it in slowly so it does not clump.
Pour the custard mixture evenly over the bread cubes in the baking dish. Use a spatula or your hands to gently press the bread down so every piece gets coated and there are no dry pockets left uncovered, especially in the corners.
Cover the dish tightly with plastic wrap or foil and refrigerate for at least 1 hour, though overnight (8 to 12 hours) gives the best texture.
In a separate bowl, combine the flour, brown sugar, cinnamon, and salt for the streusel. Add the cold cubed butter and use a pastry cutter or fork to work it into the dry ingredients until the mixture looks like coarse crumbs. Stir in the chopped pecans.
Cover and refrigerate the streusel separately until you are ready to bake, so the butter stays cold.
Preheat your oven to 350 degrees Fahrenheit. Remove the casserole from the fridge and let it sit at room temperature for about 15 minutes while the oven heats.
Sprinkle the chilled streusel topping evenly over the top of the soaked bread.
Bake uncovered for 40 to 45 minutes, until the top is golden brown and the center is set with only a slight jiggle. If the top browns too quickly, loosely tent it with foil for the last 10 to 15 minutes.
Let the casserole rest for 5 to 10 minutes after baking so it firms up slightly and is easier to slice. Cut into squares and serve warm, drizzled with pure maple syrup.