Preheat oven to 350°F. You'll need a deep 9x13 baking pan.
Grate the cheese: If you haven’t already, grate the cheese. I always use a box grater, you can use a food processor too - see note below.
Cook pasta: In a pot with generously salted water, cook the pasta according to package directions until just al dente, or a little under since it will finish cooking in the oven. Drain and set aside (do not rinse with water).
Make the roux (for the sauce): In a large pot, melt the ½ cup butter over medium-low heat until just melted, don’t let it burn. Stir in the flour, whisking to incorporate for about 3 minutes, until slightly thickened. This is called a roux. At this point, it should look a little pale yellow and should begin to smell nutty. Tip: Don’t rush this process as the raw flour needs to be cooked, and be careful not to let it burn.
Make the bechamel (the creamy sauce): Warm up the milk and heavy cream in the microwave until it’s a little warm. Gradually, add the milk into the roux, stirring to dissolve any lumps. Then, add the heavy cream and dijon mustard. Continue cooking and stirring over medium-low heat - it will thicken as it heats up. Tip: You can turn up the heat momentarily to get it going faster.
Add cheese: Once it’s thickened, add the cheese and turn off the heat. Stir until evenly combined and melted. At this point, you can add more milk to taste if the sauce is too thick. Season with garlic powder, and salt and pepper to taste.
Return pasta: Stir in the cooked pasta until well combined and coated.
Bread crumb topping: In a food processor, pulse the bread until you get crumbs. Drizzle in the melted butter, add garlic powder and Italian seasoning, and pulse a few more times until moist. Top the mac and cheese with the moist crumbs evenly.
Assemble and bake: Transfer the creamy mac and cheese to a deep 9x13 inch baking dish. Top evenly with the bread crumbs and a few more sprinkles of shredded cheese. Bake for about 20-25 minutes until golden brown and bubbly.
Let cool slightly before serving. Enjoy!