Preheat oven to 350.
1. Boil pasta 2- 3 minutes LESS than package says because will continue to cook when baked. Strain pour some olive oil over it to keep from sticking and set aside.
2. Shred ALL cheeses. Combine and set aside.
NOTE: Do not buy pre shredded cheese. It will NOT melt properly because of waxy coat they put on top of it.
3. Melt butter in deep saucepan and add flour and begin whisking to make roux. Keep whisking to avoid clumping and make creamy. Whisk 2-3 minutes until toasted
4. Add milk and heavy cream and continue to whisk in medium heat. Take care to make sure the flour does not stick to the bottom of the saucepan. Continue whisking another 2-3 minutes until it begins to bubble.
5. Add paprika, mustard powder, salt and pepper (ALL OPTIONAL)
6. Begin adding cheese 1/3 at a time. And switch to spatula to stir because cheese will get caught in whisk. Continue to stir until all cheese is combined and then add another 1/3 and stir until all combined.
7. Combine pasta and cheese sauce. Make sure to cover the pasta fully. The cheese sauce will be very thick. Will almost have consistency of melted marshmallows and will likely be difficult to mix.
8. Put fully combined cheese and pasta into an oven safe baking dish and set aside.
9. Put final 1/3 of shredded cheese on top of pasta in baking dish.
10. Combine 1 1/2 Panko Breadcrumbs, 1 cup Parmesan, and 4-5 tablespoons melted butter to make topping. Evenly spread on top of final layer of cheese in baking dish.
11. Bake at 350 for 30-35 minutes.