Heat the oven and prep the dish: Set your oven to 375°F (190°C).
Grease a 9x13-inch baking dish or similar casserole with butter or oil.
Cook the pasta: Bring a large pot of salted water to a boil. Add the pasta and cook until just shy of al dente (about 1–2 minutes less than package directions). Drain and set aside.
Toss with a drizzle of oil to prevent sticking.
Make the roux: In a large pot over medium heat, melt 6 tablespoons butter. Whisk in the flour and cook, whisking constantly, for 1–2 minutes. The mixture should smell slightly nutty but not brown.
Build the sauce: Gradually whisk in the milk and cream, a little at a time, to avoid lumps.
Keep whisking until smooth. Simmer gently for 4–6 minutes, stirring often, until the sauce thickens enough to coat the back of a spoon.
Season and add cheese: Turn the heat to low. Stir in Dijon, garlic powder, onion powder, paprika, 1–1½ teaspoons salt, and ½ teaspoon black pepper.
Add the cheddar, Gruyère/Jack, and Parmesan in handfuls, stirring until melted and glossy. Taste and adjust seasoning.
Combine with pasta: Add the drained pasta to the sauce and fold gently until every piece is coated. The mixture should be creamy but not soupy.
Make the topping: In a bowl, mix panko with olive oil or melted butter and a pinch of salt and pepper.
For extra flavor, add a tablespoon of Parmesan.
Assemble: Transfer the mac and cheese to the prepared baking dish. Smooth the top and sprinkle evenly with the breadcrumb mixture.
Bake: Place on the center rack and bake for 18–22 minutes, until the top is golden and the edges are bubbling. For a deeper crust, broil for 1–2 minutes, watching closely.
Rest and serve: Let it sit for 10 minutes before serving.
This helps the sauce set slightly so each scoop holds together.