The juiciness of the spinach and mushrooms keeps this macaroni and cheese dish moist and flavorful Slideshow: More Macaroni and Cheese Recipes
Preheat the oven to 350°. Butter a shallow 2-quart gratin dish.
Heat the olive oil in a large skillet over moderate heat. Add the mushrooms and cook, stirring occasionally, until they are deeply golden brown, about 10 minutes. Stir in the spinach and cook until wilted, about 3 minutes. Season with salt and pepper, and transfer the mixture to a large bowl.
Melt the 3 tablespoons of butter in a saucepan over moderate heat. Add the flour and cook, stirring constantly until smooth, for 1 minute. Add the milk and cook over moderately low heat, stirring occasionally, until thickened, about 10 minutes. Add about half of the cheese, stirring until melted and smooth. Season with salt and pepper, and keep the sauce warm over very low heat.
Meanwhile, in a large pot of boiling well-salted water, cook the pasta until al dente. Drain well, then add to the bowl of spinach and mushrooms. Add the cheese sauce and stir everything together until well combined.
Pour half of the mixture into the buttered gratin dish, sprinkle half of the reserved cheese over it, then top with the rest of the pasta mixture. Sprinkle the remaining cheese over the top. Bake until bubbling and lightly golden, about 30 minutes. Let sit for about 5 minutes before serving.