Preheat your oven to 200°C/400°F. Cut the spaghetti squash in half lengthwise and use a spoon to scoop out the seeds. Brush the cut surface of each half with 1 tablespoon of olive oil and season generously with salt. Place the squash halves cut-side up on a baking sheet and roast in the preheated oven for about 40 minutes, or until the flesh is tender and can be easily pulled into strands with a fork.
While the squash is roasting, heat another 1 tablespoon of olive oil in a large pan over medium heat. Add the minced garlic cloves and sauté briefly for a few seconds until fragrant, being careful not to burn them. Add the fresh spinach leaves, stirring continuously until they are wilted and any released liquid has evaporated.
Add the drained and chopped artichoke hearts to the pan with the wilted spinach and sauté for about a minute. Reduce the heat to low and stir in the cream cheese, letting it melt completely while stirring gently. Once the mixture is smooth, remove from heat and stir in the mayonnaise, 1/2 cup grated Parmesan (reserve 2 tablespoons for topping), and shredded mozzarella. I like to really blend the filling well so you get creamy, cheesy bites in every forkful.
Once the roasted spaghetti squash is cool enough to handle, gently use a fork to loosen the flesh but leave it inside the shells. Evenly divide the cheesy spinach and artichoke mixture among the four squash halves, spooning it on top of the loosened squash flesh. Sprinkle the remaining 2 tablespoons of Parmesan or vegetarian hard cheese over each half. Return the stuffed squash halves to the oven and bake for 20-25 minutes, until the filling is bubbling and golden on top.