Bring a large pot of salted water to a boil. While water boils, slice mushrooms into 1/4 inch thick slices. Half, peel, and slice onion into 1/4 inch thick slices. Roughly chop parsley.
Cook spaghetti for 9-11 minutes until al dente. Reserve 1 cup pasta water, then drain.
Return pot to stove over medium heat. Melt butter. Sauté mushrooms and onion, stirring frequently. (~8-11 mins)
Push mushrooms and onions to the side. Add ground beef, season with salt and pepper, and cook until browned, stirring frequently. (~5-8 mins)
Reduce heat to low. Stir in crushed tomatoes and tomato paste if using.
Add Italian seasoning, garlic powder, onion powder, red pepper flakes, oregano, sugar, salt, and pepper. Bring to a simmer and let it sit for 5-8 minutes until slightly reduced
Return spaghetti to the pot. Add a splash of reserved pasta water and mix well.
Serve topped with parmesan and parsley.