Preheat oven to 375˚F. Lightly grease a 13”x9” baking dish and set aside.
Place butter into a medium pot and melt over medium-high heat.
Add flour and stir together to create a roux. Stir for 2 to 3 minutes. Stir in milk and continue to stir until mixture thickens enough to coat the back of a spoon. Stir in cream cheese and continue to stir until no lumps remain. Season with salt and pepper.
Stir in cheeses, 2 ounces at a time, until fully incorporated and mixture is smooth. Stir in the spinach and adjust seasonings.
Place cooked pasta in a large mixing bowl and pour spinach-cheese sauce over. Stir together until all the pasta is well coated. Fold in the quartered artichoke hearts and adjust seasonings.
Pour mixture into the prepared baking dish and top with extra shredded cheese.
Bake for 25 to 30 minutes or until mixture is bubbly and slightly browned on top.
Cool for about 10 minutes, scoop and serve.