Preheat the oven to 350°F (175°C) and spray a 13×9-inch baking dish with nonstick spray.
Cook the thin spaghetti in a large pot of boiling salted water until al dente, then drain and set aside.
Meanwhile, heat a large skillet or Dutch oven over medium heat and cook the ground beef with the chopped white onion until the beef is browned and the onion is softened, about 6–8 minutes; drain any excess fat.
Return the beef mixture to the pan, stir in the taco seasoning mix and 1/3 cup water until combined.
Add the cooked spaghetti and the 30 ounces of red enchilada sauce to the beef, stirring until the pasta is evenly coated.
Transfer the mixture to the prepared baking dish, sprinkle the shredded Mexican cheese evenly over the top, then distribute the 1/2-inch (approx) cubes of American cheese or Velveeta across the casserole.
Bake in the preheated oven until the cheese is melted and just starting to brown, about 30 minutes.
Remove from the oven, sprinkle with thinly sliced green onions, and serve with sliced black olives and sour cream if desired.