Heat olive oil in a large stockpot over medium-high heat. Add ground beef, yellow onions, and taco seasoning. Cook until beef has browned, about 3-5 minutes, making sure to crumble the beef as it cooks.
Stir in tomato paste and diced tomatoes, then stir.
Add spaghetti and water. Bring to a boil; cover, reduce heat, and simmer until pasta is cooked through, about 15 minutes.
Remove from heat and top with cheddar cheese, mozzarella cheese, Roma tomato, and cilantro. Mix until cheese is melted.
Serve immediately. Garnish with additional tomato and cilantro, if desired.