Bring a large pot of salted water to a boil and cook the elbow macaroni just until al dente according to package directions, then drain and set aside.
In a large skillet or Dutch oven over medium heat, cook the ground beef until browned and fully cooked, breaking it apart as it cooks, then drain any excess grease and set the beef aside.
Lower the heat to medium-low and add the butter to the same pan, then whisk in the flour and cook for 1 minute until lightly golden.
Slowly whisk in the whole milk and heavy cream, whisking constantly until the sauce thickens, about 3-4 minutes.
Add the cheddar cheese and mozzarella cheese a handful at a time, stirring until fully melted and smooth.
Stir in the garlic powder, onion powder, salt, black pepper, smoked paprika, and Dijon mustard until combined.
Return the cooked ground beef and drained macaroni to the pan and stir until everything is evenly coated in the creamy cheese sauce.
Serve warm topped with extra cheese or smoked paprika if desired.