Boil 6 cups of salted water in a large pot set over high heat. Add the pasta and cook for 6 minutes. Drain the cooked pasta and set it aside.: Your first cue is the rolling boil and the sound of vigorous bubbling which tells you the water is hot enough to cook the elbow macaroni quickly and evenly. You'll notice the pasta soften but still offer a slight bite at six minutes, which is perfect because it will finish cooking slightly in the sauce; overcooking here leads to a mushy center. A common mistake is under salting the water, which yields bland noodles, so be generous with the salt. Drain thoroughly so excess water does not thin the cheese sauce.
In the same pot, melt the butter. Add the flour, cayenne pepper, garlic powder, onion powder, salt, and pepper. Whisk until the mixture starts to brown, about 2 minutes.: As the butter melts you'll smell a nutty aroma, then whisk in the flour to form a roux; you want gentle bubbling and a light toasty scent after about two minutes. This step builds a savory backbone and prevents a runny sauce later. Avoid letting the roux darken too much because it will color and alter the sauce flavor. If lumps appear, whisk vigorously and reduce heat to smooth them out.
Whisk in the milk and continue stirring until it starts to thicken, about 5 minutes.: Pouring in the milk will momentarily quiet the sizzle, then resume as the mixture heats; a gentle simmer and consistent whisking will coax the roux and milk into a glossy, velvety sauce in five minutes. The aroma will shift to a creamy dairy note, and the sauce should coat the back of a spoon. If it seems too thin, keep cooking and stirring patiently, if too thick, thin with a splash more milk. Do not rush by cranking heat, as that can cause separation.
Stir in the cheddar and mozzarella cheeses until fully melted. Mix in the cooked pasta.: Adding the freshly shredded cheddar and mozzarella transforms the sauce, releasing a rich, savory perfume. Stir slowly so the cheese melds into a smooth, glossy mélange without clumping. When the macaroni is added, you'll see strands coated and small pockets of molten cheese hugging each piece, signaling a cohesive mixture. A common issue is adding cheese to boiling liquid which can make it grainy, so remove from high heat and stir gently as it melts.
Pour the macaroni into a 9×13-inch baking pan and spread it out. Cover and refrigerate for at least 2 hours.: Spread the cheesy pasta into an even layer so it cools uniformly on the surface, which promotes easier scooping later. As it chills, the sauce firms and binds the macaroni , while the cooler air removes heat that would otherwise make forming difficult. If you rush this step you'll struggle to shape balls and risk collapse, so respect the two hour chill for best structure. Covering prevents a skin from forming and keeps flavors locked in.
Once the macaroni is chilled, remove it from the refrigerator and line a baking sheet with parchment paper. Form equal size 2-inch balls from the mac and cheese and place them onto the prepared pan.: Working with cold mixture, you'll feel the texture change from tacky to pliable, and the balls will hold their shape when rolled gently. Use a cookie scoop for uniformity and press lightly to round them. If the mixture sticks to your hands, wet them slightly or use parchment to shape; excessive handling will warm the filling and make them sloppy.
Cover the baking sheet and freeze for at least 2 hours.: Freezing sets the shape and hardens the interior which is crucial for maintaining structure during frying, you will notice the surface go from tacky to firm. Frozen balls also reduce oil penetration, keeping them less greasy. A common oversight is not freezing long enough, which can lead to breakage when breading, so allow the full two hours or longer for consistent results.
Once the balls are frozen, prepare the oil. Fill a deep-frying skillet or Dutch oven with 3 inches of oil. Heat the pan of oil over medium heat until it reaches 300°F.: As the oil warms you'll see gentle shimmer lines and subtle wisps of steam, and the thermometer will give you the target 300°F. This moderate temperature cooks the crust through without burning it before the interior thaws and warms. If your oil is too hot the exterior will darken too quickly while the center remains cold; too cool and the balls will absorb oil and become greasy. Keep a reliable deep frying thermometer on hand.
While the oil heats, prepare the breading. Whisk the eggs and water together in a shallow bowl. Pour the bread crumbs into another bowl.: Combining the two large eggs and the water produces a glossy wash that helps the Panko breadcrumbs adhere evenly. You will see the mixture become slightly frothy, which is normal. If the wash appears too thin the crumbs will slide off, if too thick it creates a dense coating, so maintain the measured ratio for balance.
Place a cooling rack on top of a baking sheet. Set aside.: This simple staging area will allow excess oil to drip away and keep the coating crisp rather than soggy. You'll hear a faint drip and see the balls settle into a perfect post fry crisp as they cool. Avoid stacking fried pieces directly on paper towels, which can trap steam and soften the crust.
Remove the mac and cheese balls from the freezer. Dip each ball into the whisked eggs and then coat with bread crumbs.: When you dip the frozen balls you will notice the wash clinging and the crumbs forming a rough, textured shell that signals a successful breading. Press crumbs lightly to ensure full coverage but do not compress them, as that reduces the desirable air pockets. A common mistake is allowing the balls to thaw too much before breading, which leads to a loose coating and messy hands.
Once the oil is hot, work in batches to fry the balls. Fry 5-6 balls at a time for about 3 minutes, flipping halfway through or until golden.: As the balls hit the oil there will be a lively sizzle and the surface will gradually shift to a rich golden brown in about three minutes; flipping exposes all sides to even browning. The sound will mellow as the moisture inside reduces. Overcrowding causes the oil temperature to drop, resulting in greasy results, so respect the batch size and monitor the thermometer to return to the 300°F range.
Place the fried Mac and cheese balls on the cooling rack while the rest of the balls cook. Serve with dipping sauce and enjoy!: After frying, you'll notice the crunch remains pronounced as steam escapes on the rack, and the first bite often delivers a warm burst of melted cheese. Let them rest briefly so the interior sets a bit, preventing a molten spill. A common error is serving straight from the oil to plate, which traps steam and softens the crust; a short rest makes them perform better in texture and presentation.