Ingredients
Method
Preheat and Prepare the Baking Dish
- Preheat the oven to 165°C. Lightly grease a 2.8-litre baking dish with butter or neutral oil on all interior surfaces — including the sides, not just the base. The cheese sauce and pasta mixture that bake directly against ungreased surfaces will adhere and tear when portioned.
Cook the Pasta
- Bring a large pot of well-salted water to a full rolling boil. Add the 600g of elbow macaroni and cook for 1–2 minutes less than the package's stated cooking time — the pasta should be clearly underdone, with a firm, chalky centre when bitten. The pasta will finish cooking during the 15–20 minutes of oven baking, and if it arrives in the dish at full al dente it will be overcooked and soft by the time the mac and cheese is served. The 1–2 minute under-cooking allowance also means the pasta absorbs less water during cooking, leaving it with a slightly more porous surface that subsequently absorbs the cheese sauce more effectively during baking. Drain thoroughly — any residual pasta water remaining in the pot or on the pasta dilutes the cheese sauce.
Prepare the Three-Cheese Blend
- In a large bowl, combine the 360g of freshly grated cheddar, 250g of freshly grated Gruyère, and 115g of freshly grated low-moisture mozzarella. Toss to distribute the three cheeses evenly — this ensures each forkful from the finished dish contains all three rather than encountering concentrated pockets of any single cheese. Reserve approximately half of the combined mixture — this half goes into the sauce and between the layers; the remaining half tops the assembled dish for the broiled crust. The three-cheese combination is specifically calibrated: cheddar provides the bold, slightly acidic, distinctively sharp flavour that everyone expects from mac and cheese; Gruyère provides a specifically nutty, slightly sweet, more complex depth that cheddar alone cannot produce and that elevates the dish beyond its simple reputation; low-moisture mozzarella provides the melting quality and the stretchy, pulling texture at serving that neither cheddar nor Gruyère produces on their own. Freshly grated from whole blocks — not purchased pre-shredded — is essential for all three. Pre-shredded cheese contains anti-caking agents, typically cellulose or potato starch, that coat every shred and prevent smooth melting, producing a sauce that is grainy or stringy rather than velvety.
Make the Roux
- In a large saucepan over medium heat, melt the 170g of butter until completely liquid and beginning to foam slightly. Add the 110g of all-purpose flour all at once and whisk continuously for 30–45 seconds. The roux should become smooth, slightly foamy, and homogenous — the flour's starch granules fully coated and dispersed in the butter's fat without clumping. The 30–45 second cooking time is the window for cooking out the flour's raw, slightly gummy flavour without allowing the roux to colour — pale or blonde roux is the correct stage for a cheese sauce where the roux's function is thickening rather than flavour contribution. Any brown colour means the roux has been cooked past its correct stage and will produce a slightly nutty, less neutral flavour in the finished sauce.
Build the Béchamel Sauce
- Add approximately half the 950ml of whole milk to the roux in a slow, steady stream while whisking constantly — the vigorous whisking while the first addition of liquid disperses the roux into the liquid evenly, preventing lumps from forming. Once the first addition is fully smooth, add the remaining milk and the 400ml of heavy cream. Continue whisking and cook over medium heat for 3–5 minutes, stirring continuously, until the sauce has thickened enough to coat the back of a spoon clearly — a finger drawn through the sauce on the back of a spoon should leave a clean line that holds its edges rather than flowing back immediately. The combination of whole milk and heavy cream rather than either alone is the calibration for the correct richness and coating quality in the finished mac and cheese: whole milk alone produces a lighter sauce with slightly less coating richness; heavy cream alone produces an oppressively rich, very thick sauce. Together they produce the sauce body that coats every piece of pasta without feeling heavy.
Season the Sauce
- Add the 5g of smoked paprika, 5g of garlic powder, 5g of onion powder, and 10g of kosher salt. Stir to distribute evenly. Taste the sauce at this stage and adjust — the sauce should taste slightly more assertively seasoned than the desired end result, because the pasta will absorb and dilute the sauce's seasoning intensity during baking. The smoked paprika contributes both the characteristic warm colour that mac and cheese should show and the mild smoky depth that amplifies the cheese's flavour.
Add Cheese Off the Heat
- Turn off the heat completely. Add half of the prepared three-cheese blend — the half reserved for the sauce — to the hot béchamel and stir continuously until every piece of cheese has melted and the sauce is completely smooth and glossy. The off-heat addition is the critical technique decision that prevents the sauce from separating or becoming grainy. At direct boiling heat, casein proteins in the cheese denature rapidly and unevenly — the fat separates from the protein structure and the sauce breaks into a greasy, lumpy mass. Off the heat, the béchamel's residual temperature is high enough to melt the cheese smoothly while the controlled temperature prevents the proteins from seizing. The correctly made cheese sauce should be glossy, velvety, and uniformly coloured at this stage.
Combine Pasta and Sauce
- Add the drained macaroni to the cheese sauce and fold gently until every piece is evenly and completely coated — the sauce should cling to every pasta surface and pool slightly between pieces. The sauce will appear slightly looser than the desired end result at this stage, which is correct — it thickens significantly during baking as the pasta absorbs liquid and the cheese proteins continue to set in the oven heat.
Layer and Assemble
- Transfer half of the pasta and sauce mixture into the greased baking dish, spreading to an even layer. Scatter half of the reserved cheese mixture — the half not used in the sauce — evenly over the first pasta layer. Add the remaining pasta mixture on top, spreading to an even surface. Scatter the remaining reserved cheese evenly across the entire top surface. The mid-dish cheese layer melts into the centre during baking, creating a distinct interior cheese concentration that the top layer's broiled crust cannot produce — the result is two cheese experiences in the finished dish: the bubbly, concentrated top crust and the creamier, softer internal cheese layer.
Bake and Broil
- Place the assembled dish in the preheated 165°C oven. Bake for 15–20 minutes until the sauce is visibly bubbling around the dish edges and the cheese on the surface has melted completely. Switch to the broiler setting and broil for 1–2 minutes — watching continuously and without leaving the oven unattended. The broiler develops the golden spots and light crispness on the top cheese layer in under 2 minutes and can progress from correctly golden to burnt in under 30 additional seconds. Pull from the broiler when golden patches are visible across the surface and the top has developed slight texture variation between melted areas and crisped ones.
Rest and Serve
- Allow the mac and cheese to rest for 5 minutes before portioning. The brief rest allows the sauce to thicken slightly from its fully liquid baking temperature to the correct serving consistency — portioned immediately from the oven, the sauce flows off each serving; after 5 minutes it has set enough to plate with definition.
Notes
The three-cheese formula — cheddar, Gruyère, and mozzarella — is balanced for complementary rather than competing contributions. Medium-aged cheddar is specified rather than sharp or extra-sharp because very sharp aged cheddar contains higher levels of free fatty acids that can make it prone to separation when melted into a béchamel, occasionally producing a greasy sauce despite the off-heat technique. Medium-aged cheddar melts more reliably while still providing clear, distinct cheddar flavour. Gruyère's specific nutty, slightly caramelised flavour comes from its extended cave-aging — it provides a background complexity that makes people describe the mac and cheese as tasting more sophisticated without being able to identify exactly why. Mozzarella's role is purely textural: its protein structure melts into long, stretchy strands rather than breaking down into the sauce, producing the specific pull and stretch at serving.
The 165°C baking temperature is lower than many mac and cheese recipes specify, and deliberately so. Higher temperatures bake the outer layer of the dish faster than the interior — producing a set, potentially dried crust before the centre has fully heated through and the sauce has reached the correct bubbling consistency. 165°C heats the dish evenly throughout, producing a uniformly creamy interior by the time the edges begin to bubble, with the brief broil at the end providing the surface colour and crispness rather than the ambient baking heat.
