Add the butter to a saucepan over medium heat.
When melted, stir through the flour to make a roux. The flour needs to be cooked but not browned, approx 2 mins stirring constantly.
Reduce the heat and slowly add 1/2 cup of milk to the roux. Whisk the milk though the mixture vigorously until there are no lumps.
Quickly add another 1/2 cup of milk and whisk again.
Remove the saucepan from the heat and whisk through the remaining milk, cream, mustard tomato paste and cayenne pepper.
Once combined add the saucepan to a medium heat. Whisk the sauce constantly until it has thickened.
Remove the saucepan from the heat and add all the cheeses. Stir the sauce until the cheeses have melted.
Season the cheese sauce with salt and pepper as desired. Stir the sauce through the pasta.
Pour the macaroni and cheese into a casserole or individual ramekins.
Sprinkle the topping ingredients evenly over the macaroni cheese.
Bake for 20 minutes or until the top is golden.