Preheat oven to 350°F and cook macaroni according to package directions until al dente, then drain.
In a large pot, melt 3 tablespoons butter over medium heat, whisk in flour, and cook for 2 minutes.
Gradually add milk while whisking constantly until sauce thickens, about 6-8 minutes.
Remove from heat and stir in cheddar and mozzarella cheeses, salt, and pepper until melted and smooth.
Combine cooked macaroni with cheese sauce and transfer to a greased 9x13-inch baking dish.
In a small skillet, melt remaining 1 tablespoon butter and toast panko with Parmesan until golden, about 3 minutes.
Sprinkle panko mixture evenly over mac and cheese and bake for 25 minutes until bubbly.
Turn oven to broil and cook for 2-3 minutes until top is golden brown and crispy, watching carefully to prevent burning.