Preheat oven to 350°F. Cook macaroni according to package until al dente; drain.
Melt 3 tablespoons butter in a large pot over medium; whisk in flour and cook 2 minutes.
Gradually whisk in milk constantly about 6-8 minutes until thickened.
Remove from heat; stir in cheddar, mozzarella, salt, and pepper until melted and smooth.
Combine macaroni and sauce; transfer to a greased 9x13-inch dish.
Melt remaining 1 tablespoon butter in a small skillet; toast panko and Parmesan about 3 minutes until golden.
Sprinkle evenly over macaroni; bake 25 minutes until bubbly.
Broil 2-3 minutes until top is golden brown and crispy, watching carefully to prevent burning.