Preheat the oven to 350 degrees Fahrenheit and spray a 9X13 baking dish with non-stick cooking spray.
Cook the macaroni 1 minute less than al dente based on the package instructions. Drain and rinse with cold water, set aside.
Melt the butter in a large deep skillet over medium high heat.
Whisk in the flour and cook and whisk for 1 minute.
Slowly whisk in the milk and heavy cream until combined and smooth. Cook and whisk until the mixture comes to a low boil. Then continue to cook for 2 minutes while whisking.
Stir in the onion powder, garlic powder, salt and pepper. Remove from heat.
Stir in the shredded cheese, 1 cup at a time, mixing until combined and melted.
Mix in the cooled pasta until it’s covered in the sauce. Pour into the prepared baking dish.
In a separate bowl, stir together the topping ingredients. Sprinkle the topping over the top of the pasta.
Baking for 30 minutes until bubbly and golden brown.
Remove from the oven, let sit for 5-10 minutes and then it’s ready to serve and enjoy!
Notes
I recommend shredding your own cheese for the best results instead of buying pre-shredded. You can use a 3 or 4 quart baking dish instead of the 9X13 baking dish. Refrigerate the leftovers in an airtight container for up to 5 days.