Bring a large pot of salted water to a boil, in the meantime make the cheese sauce.
In a saucepan melt the butter, add the chopped garlic and then the flour, whisk everything together. Cook for a few minutes until the flour starts to change color become a pale golden brown.
Add the milk slowly whisking constantly, cook the milk mixture until it thickens and is streaming, stir occasionally to prevent the bottom from scorching.
Add in the cheese, seasoning, spices, everything except the pasta.
Cook the pasta until it is al dente, you want there to be enough of a bite that the pasta won’t turn to mush after you’ve baked the casserole. Drain the pasta and run cold water over it to stop the cooking process.
Mix the pasta and the cheese sauce together, taste and adjust the seasoning. It may look like a lot of sauce, but the pasta will absorb some of the liquid as it bakes.
Pour the pasta and cheese mixture into a 9x13” baking dish.
Bread crumb topping
Combine all of the ingredients for the topping and sprinkle evenly over the top of the pasta, make sure to spread it out to the edges of the pan.
Bake at 375F for 30-45 minutes until the bread crumbs are golden brown and there is bubbling around the edges.