Preheat the oven to 350°F and spray a 13x9-inch baking dish with nonstick spray.
Cook the thin spaghetti in a large pot of boiling salted water until al dente, according to package directions; drain and set aside.
In a large skillet or Dutch oven over medium heat, cook the ground beef with the chopped white onion until the meat is browned and the onion is softened, about 6–8 minutes; drain any excess fat.
Return the skillet to medium heat, stir in the taco seasoning mix and 1/3 cup water, and cook until combined and slightly thickened, about 1–2 minutes.
Add the cooked spaghetti and the 30 ounces of red enchilada sauce to the meat mixture and toss until the pasta is evenly coated.
Transfer the mixture to the prepared baking dish, sprinkle evenly with 2 cups shredded Mexican cheese, and top with the 1/2-inch cubed (8 ounces) American cheese or Velveeta.
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.