In a dutch oven melt the butter over medium heat. Add the flour, mustard powder, salt, garlic powder, onion powder, and black pepper, whisk for 30 seconds.
Slowly add the milk a little at a time while whisking, this will help prevent lumps. Bring to a simmer, whisking constantly and simmer for 3 minutes. Take off the heat, temper in the egg. Add ¾ of the cheese and stir it in until melted.
Add the cooked macaroni and stir to combine. Pour into a greased 9x13 baking dish. Top with the remaining cheese.
Bake for 30 minutes until the cheese on top is melted and it is bubbly. Let cool completely on the counter.
Place in the fridge for 6 hours or best overnight.
Roll 1 & ½ tablespoons of the mac and cheese in your hands to form balls. I like to use a cookie scoop for this. Place on a parchment paper-lined sheet tray. Place in the freezer for 30 minutes.
While the mac and cheese balls are freezing, start to heat up 3-4 inches of peanut oil in a dutch oven to 350°F.
Place the eggs in a small bowl.
Place the panko, garlic powder, onion powder, and black pepper in a medium-sized bowl, stir to combine.
One at a time, place the mac and cheese balls into the egg and make sure it is coated, let any excess drip off. Place into the breadcrumbs and coat the ball in the crumbs, gently pressing them in so they stick. Place back on the parchment-lined sheet tray. Repeat with the remaining ingredients.
Gently place the balls in batches into the hot oil, about 4-5 at a time. I like to use a metal slotted spoon to lower them into the oil. Fry, moving them gently around so they don’t burn on the bottom until dark golden brown, about 3-4 minutes.
Place the fried mac and cheese balls onto a paper-towel-lined plate to get any excess oil off them then transfer to a wire rack place over a sheet tray. This will help them to stay crispy all over. You can keep them in a warm 170°F oven. Repeat with the remaining mac and cheese balls.
Serve with ranch dressing for dipping if desired.