Preheat the oven to 180ºC and cook the pasta according to the package instructions. Drain and set aside while you make the cheese sauce.
In a medium sauce pan over a medium heat melt the butter.* See note 1.
Once the butter has melted completely add in the flour while you whisk to avoid getting lumps of flour. *See note 2
Place the pan back on the heat and whisk for about 2 minutes to cook out the flour.
Slowly and gently pour in the milk, whisking well the whole time.
Once you have a smooth sauce consisting of just butter, flour and milk, add in the garlic powder, thyme and the mixed spice. I know the mixed spice may seem like a strange addition, but trust me, it pulls the whole thing together with just the smallest amount added. Whisk the herbs and spices into the sauce along with salt and pepper and give everything a taste.
You should love the taste of the sauce before you add the cheese. Sometimes, it's easy to think that the cheese will make a mediocre sauce better, but that's just not the case. So taste and adjust according to what you think the sauce needs more of.
Now add the cheese to the sauce. You can do this off the heat. The sauce is hot enough that the cheese will melt quickly and you don't run the risk of having the cheese catch on the bottom of the pan.
Add in the cooked pasta and stir well. Adjust the seasoning.
Place the macaroni and cheese into an oven safe dish and top with the breadcrumbs and the parmesan if using.
Bake in the preheated oven for about 30 minutes, until the breadcrumbs are golden and crunchy and the cheese sauce is bubbling.