To begin, preheat your oven to 180°C (fan 160°C). Bring a large pot of salted water to a boil and cook the macaroni until just shy of al dente, around 6 to 7 minutes. Drain and set aside, tossing with a touch of oil to prevent sticking.
In a medium saucepan over medium heat, melt the butter until it foams. Whisk in the flour and cook for 2 minutes, stirring constantly, until it smells nutty and turns pale golden. This base thickens the sauce without leaving a floury aftertaste.
Gradually whisk in the warm milk and cream until smooth. Cook over medium heat, whisking gently, until the sauce thickens enough to coat the back of a spoon. Stir in mustard, garlic powder, onion powder, salt, and pepper.
Lower the heat and fold in the cheddar and Gruyère, stirring until fully melted and velvety. Taste and adjust seasoning if needed. Reserve half the Parmesan for topping later.
Add the cooked macaroni to the cheese sauce and fold gently until evenly coated. Transfer the mixture into a lightly buttered baking dish, smoothing the top with a spatula.
In a small bowl, mix the panko breadcrumbs with olive oil and the reserved Parmesan. This creates a crisp and savoury topping that contrasts beautifully with the creamy base.
Sprinkle the breadcrumb mixture evenly over the macaroni. Bake uncovered for 20 to 25 minutes, or until the top is golden and bubbling around the edges.
Remove from the oven and let it rest for 5 to 10 minutes. This allows the cheese to set slightly, making for cleaner slices and a more cohesive texture.
Garnish with freshly chopped parsley if desired. Serve hot with a side of crisp salad or roasted vegetables for a full meal. Leftovers reheat well in the oven with a splash of milk.
For an eye catching presentation, serve in individual ramekins or a cast iron skillet. A drizzle of hot sauce or a few flakes of smoked paprika can enhance the flavour if you enjoy a little heat.