Preheat the oven to 350 degrees Fahrenheit. Lightly grease a large 3-4 qt baking dish and set aside.
Cook the pasta according to directions, removing it from heat one minute before the al dente cooking time is done. Drain and place in a large bowl.
To make cheese sauce combine the shredded sharp cheddar cheese and Mozzarella cheese in a bowl, set aside.
Put butter in a large saucepan, dutch oven or stock pot. Whisk in flour over medium heat and continue whisking for about 1 minute until bubbly and golden.
Next, gradually whisk in the milk and half and half until smooth, making sure to continuously whisk the mixture. Continue to whisk until you see bubbles on the surface. Then continue cooking and whisking for another 2 minute. Add salt, pepper and garlic powder and whisk to combine.
Add two cups of the cheese mixture to the saucepan and whisk until smooth. Add another 1 ½ c. of cheese mixture and continue whisking until creamy and smooth. At this point the cheese sauce should be thick.
Stir in the cooked pasta and gently stir to combine making sure the pasta is fully coated with the cheese sauce.
Pour half of the mac and cheese into the prepared baking dish. Top with remaining 1 ½ c. of cheese mixture and then the remaining mac and cheese.
In a small bowl, combine panko crumbs, Parmesan cheese and melted butter for topping. Sprinkle over the top of the mac and cheese. Place in a preheated oven and bake until bubbly and golden brown, about 30 minutes. Serve immediately.