Preheat your oven to 180°C (350°F).
Cook the bacon in a pan over medium-high heat until crispy. Remove it from the pan, slice it, and set it aside.
Boil the potatoes and macaroni in separate pots according to their package instructions until they are just tender. Drain them and set aside.
While the potatoes and macaroni are coming to the boil, start making the cheese sauce. In a large saucepan, melt the butter over medium heat. Add the flour and stir continuously for 2 minutes.
Slowly add the milk to the butter and flour mixture, whisking constantly to prevent lumps. Continue to cook and stir until the sauce has thickened.
Remove the saucepan from the heat and stir in the cheddar cheese until it's completely melted. Add the salt, black pepper, garlic powder, onion powder, and cayenne pepper (if using). Stir until everything is well combined.
Combine the cooked potatoes, macaroni, and crumbled bacon in a large baking dish. Pour the cheese sauce over the top and stir gently to ensure everything is well coated.
Sprinkle the grated mozzarella cheese on top.
Bake in the oven for 25-30 minutes or until the cheese on top is golden and bubbly.
Allow the dish to cool for a few minutes before serving. Garnish with sliced spring (green) onions if desired.