Get Ready: Preheat your oven to 325°F (160°C). Lightly grease a 3-quart (9x13 inch) baking dish and set it aside.
Cook the Pasta: Bring a large pot of salted water to a rolling boil. Add your elbow pasta and cook for just about 1 minute less than the package instructions for 'al dente' – it will finish cooking in the oven. Drain the pasta and toss it with a tiny bit of olive oil to prevent sticking.
Prep the Cheese: While the pasta cooks, shred all your cheeses. Mix them together, then divide into three equal piles: about 3 cups for the sauce, 1 1/2 cups for the middle layer, and 1 1/2 cups for the top.
Start the Sauce Base (Roux): In a large saucepan over medium heat, melt the unsalted butter. Sprinkle in the flour and whisk continuously for about 1 minute until it forms a smooth, thick paste (a roux).
Build the Creaminess: Gradually pour in about 2 cups of the half and half, whisking constantly until smooth. Then, slowly add the remaining half and half and the whole milk, continuing to whisk until fully combined and smooth.
Thicken the Sauce: Keep heating the mixture over medium heat, whisking frequently, until it thickens to a consistency similar to a slightly thinned condensed soup. This takes patience but is key to a creamy sauce!
Melt the Cheese: Remove the saucepan from the heat. Stir in the salt, black pepper, and paprika. Add 1 1/2 cups of your mixed shredded cheese, stirring until completely melted. Then, stir in another 1 1/2 cups of cheese until the sauce is wonderfully smooth and cheesy.
Combine & Layer: In a large mixing bowl, gently combine the drained pasta with your creamy cheese sauce, ensuring every noodle is coated. Pour half of this cheesy pasta mixture into your prepared baking dish. Sprinkle evenly with 1 1/2 cups of the remaining shredded cheese.
Final Layers & Bake: Top with the rest of the pasta mixture. Finish by sprinkling the very last 1 1/2 cups of shredded cheese over the top. Bake for just 15 minutes, or until the cheese is bubbly and beautifully golden brown on top. For an extra crispy crust, you can broil for 2-3 minutes at the very end, watching carefully!
Enjoy! Serve warm and savor this delightful, easy-to-make dish.