Preheat the oven to 400 degrees Fahrenheit. Spray a 9 x 13 baking pan with cooking spray
Wash and dry spaghetti squash. Pierce all over with a fork or small knife. Cook in microwave for 10 minutes.
When spaghetti squash is done, carefully take it out of microwave with potholders. Place on a cutting board. Using a large knife, cut it in half lengthwise. Careful of the steam!
Scoop out the seeds with a large spoon. Using a fork, check to see if the strands will separate into threads. If not, microwave each half an additional minute at a time, checking after each minute. Do not overcook. Mushy strands are not what you want.
Once the squash is cooked, let it cool for about 10 minutes. Then using a fork, scrape the strands out into a large bowl. You may need a large spoon to get the last bits out.
While the spaghetti squash is cooking, heat a large pan on the stove over medium high heat. Add the sausage and chopped onion (and mushrooms if using). Cook and crumble the sausage until cooked through. When it's almost done, turn the heat down to low and add the garlic to the pan. Cook for another minute, careful not to brown the garlic.
In a very large bowl or pan, mix together the spaghetti squash strands and the meat mixture. Add the pizza sauce, 3 ounces chopped pepperoni, olives, dried basil or Italian seasoning, and salt and pepper to taste. Add in any other optional ingredients. Mix well. Pour into prepared pan.
In a small bowl, whisk together the eggs and cream. Pour this over the spaghetti squash mixture and mix a bit until the eggs aren't showing.
Sprinkle cheese over the top. Decorate the top with the last ounce of pepperoni (and anything else you want).
Bake in 400 degree oven for an hour, until eggs are cooked through.
Let rest for 5-10 minutes before serving so it sets up a bit.