Cook pasta according to package directions until al dente. Drain and set aside.
Cook bacon until crispy, then crumble and set aside.
In a large saucepan, melt butter over medium heat. Whisk in flour and cook for 1 minute. Slowly whisk in milk and cream, cooking until thickened. Stir in the cheddar cheese, mozzarella cheese, garlic powder, onion powder, salt and pepper. Mix until smooth and creamy.
Add cooked pasta and bacon to the cheese sauce. Stir until fully coated. Pour into a greased 9x13 baking dish.
In a small bowl, toss together the breadcrumbs, butter, and parmesan cheese. Sprinkle evenly over the top.
Bake at 375°F for 20–25 minutes, until and bubbly and golden brown on top. Top with sliced green onions, if desired. Let cool slightly, then serve warm.