Preheat your oven to 350 degrees.
In a large skillet, brown the ground chuck with the diced onion & garlic (if using). Drain off any grease that forms. Mix in the spaghetti sauce, Italian seasoning, & garlic powder. Cook on low for 10 minutes.
Cook the spaghetti noodles until al dente. Drain off the water, & then stir in 8oz of softened cream cheese. Stir the noodles into the sauce - the heat will melt any un-mixed cream cheese.
Meanwhile, make the Mozzarella cheese sauce. In a saucepan, melt 2 tablespoons of butter. Whisk in 1/4 cup of all purpose flour. Cook on medium heat for about 60-90 seconds, stirring occasionally. Whisk in 2 cups of milk. Cook, whisking often, on medium heat until it’s thickened enough to lightly coat your whisk – about the thickness of heavy whipping cream. Add in 8oz of shredded Mozzarella cheese. Whisk until the cheese is completely melted & throughly combined.
Spray a 9x13 casserole dish with nonstick cooking spray. Spread half of the spaghetti mixture into the bottom of the dish. Top with half of the cheese sauce & half of the shredded parmesan cheese. Top the cheese with the other half of the spaghetti - and then finish up with the rest of the cheese sauce & parmesan cheese.
Bake at 350 for 30 minutes. Cool for 5 minutes before serving.