Preheat the oven to 425ºF. Spray a 9x13 pan with a nonstick spray and set aside.
Bring a large pot of water to a boil over high heat. Add ½ teaspoon of salt, then add the pasta. Cook according to the package directions, reducing the cook time by 2 minutes. Drain the pasta and briefly rinse with cold water to stop the cooking.
1 lb short pasta
In a large pot, melt the butter over medium heat. Once melted, add the flour, onion powder, garlic powder, and mustard powder. Stir constantly for about 30 seconds to form a smooth paste and to ensure the raw flour taste is cooked off.
6 tablespoons butter, 6 tablespoons flour, 1 teaspoon onion powder, 1 teaspoon garlic powder, ½ teaspoon mustard powder, ¼ teaspoon kosher salt
Slowly pour in the milk while whisking vigorously to prevent lumps. Once all the milk has been added, continue stirring until the sauce thickens slightly. The sauce is ready when it coats the back of a spoon and holds a clean line when you run your finger through it.
6 cups whole milk
Remove the pot from the heat and add the shredded cheese a handful at a time, stirring until fully melted and smooth before adding more. Stir in the salt, then taste and adjust if needed. For an extra silky sauce, use an immersion blender and blend for 1–2 minutes until completely smooth.
7 ounces gruyere cheese, 8 ounces cheddar, 3 ounces low-moisture/part-skim mozzarella, 3 ounces parmesan
If needed, gently rinse the pasta to help separate the noodles, then shake off all excess water. Add the pasta to the sauce and stir until evenly coated. Transfer the mixture to the prepared baking dish.
In a small bowl, mix together the topping ingredients. Sprinkle evenly over the pasta. Bake for 25–30 minutes, or until hot and bubbly. If the topping begins to brown too quickly, loosely cover the dish with foil.
1 cup panko breadcrumbs, 1 cup Ritz cracker crumbs, 4 tablespoon butter