Preheat your oven to 350°F. Lightly coat a 9x13-inch baking dish with cooking spray to prevent sticking.
Fill a large pot with water, add a pinch of salt, and bring it to a rolling boil. Cook the spaghetti according to the package instructions until al dente (the pasta will continue to cook in the oven so best to keep it slightly firm), usually about 8 to 10 minutes. Drain well and set aside.
While the spaghetti is cooking, place a large skillet over medium-high heat. Add the ground beef and cook until it's no longer pink (about 5 to 7 minutes). You can break it apart with a spatula as it cooks and drain any excess grease for a healthier dish.
Turn off the heat and stir in the spaghetti sauce with the cooked beef. Mix well to ensure the meat is thoroughly coated with the sauce. Set aside.
In a medium bowl, blend together the cottage cheese, cream cheese and sour cream until smooth.
Place half of the butter slices on the bottom of the baking dish. Add half of the cooked spaghetti, creating an even layer. Spread the cheese mixture over the spaghetti. Then, layer the remaining spaghetti on top and dot with the remaining butter slices.
Pour the meat sauce over the top spaghetti layer and spread it out evenly.
Cover the dish with aluminum foil and bake in the preheated oven for 30 minutes. The foil has two purposes: keeping the moisture in and preventing the top from browning too quickly.
After 30 minutes, remove the foil, sprinkle the Cheddar cheese evenly over the top, and return to the oven. Bake for an additional 15 minutes. The cheese should be melted with a light golden crust.
Let the casserole rest for about 5 minutes before slicing. You need to allow the layers to set to serve neat portions. Cut into squares and serve warm.