Preheat oven to 400°. Drizzle cut sides of spaghetti squash with oil and season with salt, chili powder, and cumin. Place cut side down on a large, rimmed baking sheet. Roast until tender, 30 to 35 minutes. Let cool slightly. Using a fork, break up squash strands.
Meanwhile, make filling: In a large skillet over medium heat, heat olive oil. Add onion and cook until soft, about 5 minutes. Stir in garlic and cook until fragrant, about 1 minute more. Add ground beef, breaking up the meat with a wooden spoon. Cook until beef is no longer pink, about 6 minutes. Drain fat.
Stir in taco seasoning, then season to taste with salt and pepper. Stir in black beans, cherry tomatoes, and corn.
Fill each spaghetti squash with beef mixture and top with cheeses. Return to oven to melt cheese, 5 minutes. Garnish with cilantro and serve.