TOPPING: Melt the butter in a skillet over medium heat, when the butter starts to crackle, add the panko and toast for 4-7 minutes or until the panko just starts to brown. Remove from heat, combine the toasted panko in a small bowl with the salt, garlic powder, and parmesan cheese, set aside.
MACARONI AND CHEESE: Position a rack in the center of the oven and preheat the oven to 400ºF. Grease medium baking dish, set aside. Prepare the pasta according to package directions, minus 1-2 minutes from al dente time. The pasta will cook just a bit when it goes into the cheese sauce so don't cook all the way to al dente. Drain, and set aside.
Heat a medium dutch oven over medium heat, add the butter and allow it to melt and crackle. Add the flour and allow the flour to cook out the raw flavor, about 1 minute. Add the garlic powder and onion powder, cook for an additional 30 seconds or until you can smell the mixture. Whisk in the milk. Allow the milk to thicken, about 8-10 minutes. It should be thick enough to coat the back of a spoon without dripping too much. Wipe the spoon with your finger, if the sauce stays separated, it's done. Remove from heat. Stir in the parmesan and cheddar immediately, taste for seasonings adjust to taste. Add the prepared pasta and stir to combine. Dump the pasta into prepared baking dish and top with the prepared panko topping.
Bake the macaroni and cheese for 8 minutes, uncovered. Keep and eye on it so the panko topping does not burn. Serve warm.