Preheat oven to 350°F. Grease a 9x13 baking dish.
Cook spaghetti in heavily salted water for 2 minutes less than package directions. Drain. Cool 5 minutes.
Whisk eggs, melted butter, and 1/3 cup Parmesan. Toss with cooled spaghetti until fully coated.
In a large skillet, heat olive oil over medium-high. Sauté onion 3–4 minutes. Add garlic, 30 seconds. Add beef, cook until browned, drain excess fat.
Add marinara and all seasonings to skillet. Simmer 8–10 minutes. Taste and season.
Layer: half the spaghetti → half the meat sauce → 3/4 cup mozzarella → remaining spaghetti → remaining meat sauce → remaining mozzarella + Parmesan on top.
Cover tightly with foil. Bake 40 minutes.
Remove foil. Bake 20–25 minutes until cheese is golden and bubbling.
Rest 10 minutes before cutting. Serve with garlic breadsticks.