01 - Preheat the oven to 400°F. Lightly grease a 9x13-inch baking dish with butter or nonstick spray.
02 - Bring a large pot of salted water to a rolling boil. Add the trimmed and halved Brussels sprouts, cooking for 4 to 5 minutes until just tender. Drain thoroughly and set aside.
03 - In a large skillet, melt 2 tbsp butter over medium heat. Add the chopped onion and sauté for 3 minutes until softened and translucent. Stir in the minced garlic and cook for 1 additional minute until fragrant.
04 - Sprinkle the flour over the sautéed aromatics and cook, stirring constantly, for 1 minute to form a smooth roux.
05 - Gradually whisk in the whole milk and heavy cream, pouring slowly to prevent lumps. Continue cooking and stirring over medium heat for 3 to 5 minutes until the sauce thickens enough to coat the back of a spoon.
06 - Reduce heat to low. Stir in 1 cup grated Parmesan, shredded mozzarella, salt, black pepper, and ground nutmeg. Mix continuously until the cheeses are fully melted and the sauce is smooth and creamy.
07 - Add the blanched Brussels sprouts to the cheese sauce and gently toss until every piece is evenly coated. Transfer the mixture to the prepared baking dish, spreading it into an even layer.
08 - In a small bowl, combine 1/4 cup grated Parmesan, panko breadcrumbs, and 1 tbsp melted butter. Mix until the breadcrumbs are evenly moistened, then sprinkle the mixture uniformly over the casserole.
09 - Bake in the preheated oven for 20 to 25 minutes until the topping is golden brown and the sauce is bubbling around the edges.
10 - Remove from the oven and let the casserole rest for 5 minutes to allow the sauce to set before serving.