Preheat the oven to 350 degrees. Grease a casserole dish with butter. 8 inch squares, an 8 inch round cast iron, or a shallow oval baking dish all work well for this.
Bring a large pot of salted water to a boil. Add the macaroni noodles and cook, removing 1 minute before the al dente package instructions. Drain and toss with a little olive oil to keep them from sticking together.
Meanwhile, warm the milk and the half-and-half in the microwave until hot but not boiling.
in a medium sauce pot, melt the butter over medium heat. Whisk in the flour and cook, stirring constantly, for 3-4 minutes or until it's a light golden color.
Turn the heat off and slowly add the milk and cream, whisking constantly as you go. The mixture will look very thick and gloppy at first and will thin out as you add the remaining liquid.
Turn the heat back on to medium and cook, stirring often, until the mixture is thickened enough to coat the back of a spoon. Season with garlic powder, mustard powder, cayenne, and salt and pepper, to taste.
Turn the heat off and add the cheeses in several additions, stirring until melted. Remove from heat.
Toss the pasta with the cream sauce and transfer to a greased casserole dish. Top with the remaining cheddar cheese.
To make the crumb topping, combine the panko, 2 Tablespoons melted butter, Pecorino Romano cheese, salt, and garlic powder in a bowl. Layer on top of the cheese then place in the oven and bake for 15-20 minutes, or until topping is golden, and edges are bubbly. Serve immediately.