Cut the tomatoes in half, and push out the seeds. Place them on a lined baking sheet, skin side up, and coat them with a little olive oil, salt and pepper. Put the baking sheet into the oven on the top rack, and roast for 10 - 15 minutes, just long enough for the skins to brown a little and the "meat" to soften.
Boil and drain the macaroni according to package directions. Rinse the macaroni with cold water to stop it from cooking, then toss it with a little olive oil and salt & pepper. That will help keep the macaroni from sticking together while you are preparing the rest of the dish.
In a large sauce pan, combine the butter, and half of the garlic. Set the heat to medium, and stir the butter and garlic until the butter melts completey. Raise the heat just a little bit, then add the flour. Whisk together. Keep whisking the butter and four. As the roux cooks, the butter will foam, and the garlic will sweat. Cook the roux, while whisking continuously for about 5 minutes. Slowly add the milk, whisking to avoid any lumps. Bring the sauce to a simmer, then reduce the heat to low.
Add the cream cheese, and let it melt completey. Slowly add the shredded cheese, stirring as you drop it in, letting it melt. When the cheese has totally melted, add the paprika and the parsley.
Add 1/2 teaspoon of salt and a pinch of pepper, then taste it to see if it needs some more. The key to cheese sauces is salt. If it tastes bland to you, try adding a little more salt. Taste, and add, then taste again. Adding the salt little by little will help you get the flavor just right.
Heat 2 tablespoons of oil in a large frying pan over medium heat. Add the onion, and the remaining garlic to the pan. Cook until the onions clear. Raise the heat to medium-high or high, then add about 1/3 of the spinach. Use a pair of tongs to toss the spinach in the pan. When it wilts, add another 1/3 of the spinach, and repeat until all the spinach is cooked.
You can serve the pasta with the toppings and sauce over it, or you can mix all of the ingredients together in a big pot. It will taste great either way, so the choice is up to you. I find that the dish looks prettier when the sauce is draped over the noodles, and the spinach and tomatoes are plopped on top. However, mixing it all together has a much more hearty, classic mac n' cheese feel to it, so without considering looks, I prefer it that way.