Preheat the oven to 350°F
Lightly grease a 9x13-inch baking dish and set aside
Cook the spaghetti according to the package directions until just al dente, drain and set aside
Meanwhile, in a large skillet over medium heat, cook the ground beef and diced onion until the beef is browned and the onion is soft
Drain any excess grease if needed
Add the garlic and cook for about 30 seconds
Stir in the marinara sauce, Italian seasoning, salt, and pepper
Let the sauce simmer for 5 minutes
In a medium bowl, mix together the cream cheese, cottage cheese, sour cream, 1/2 cup mozzarella, and Parmesan until combined
Place the butter slices across the bottom of the prepared baking dish
Add half of the cooked spaghetti noodles
Spread the creamy cheese mixture over the noodles
Add the remaining spaghetti noodles on top
Pour the meat sauce evenly over the spaghetti
Top with the remaining 1 cup mozzarella cheese
Bake uncovered for 30-35 minutes, or until the casserole is hot and bubbly and the cheese is melted
Let rest for 5-10 minutes before slicing and serving