Bring a large pot of water to a rolling boil. Cook pasta for one minute less than package directions state. Drain.
While macaroni is cooking, melt 3 tablespoons of butter in a medium sized pot and add the flour. Cook, whisking constantly, over medium heat for 1 minute.
Continue whisking and slowly pour in the milk and cream. Cook over medium heat for another 2 minutes until thickened and smooth.
Remove from the heat and stir in the cheddar, salt, and pepper. Continue stirring until smooth and creamy.
Add the cooked macaroni to the cheese sauce and stir to coat.
Taste and season with additional salt and pepper, if needed.
To layer the dish:
Pour melted butter into the bottom of a 2 quart baking dish. Spoon half of the macaroni and cheese over the top.
Spread the sour cream over the macaroni and cheese. Sprinkle with the Havarti and gruyere.
Spoon remaining macaroni and cheese over the top.
To make the topping:
Stir together the Panko, melted butter, garlic salt, and parsley to make the bread crumb topping. Sprinkle over the macaroni and cheese.
Bake for 25 minutes or until the sauce is bubbly and the top is as browned as you'd like.
We recommend a medium to sharp cheddar for the cheese sauce, but you can swap the Havarti and gruyere for any cheese you love. Provolone, colby jack, and mozzarella are all good choices that are a bit more economical and easy to find.