Heat oil in a pan over medium heat and sauté minced onion, carrot and celery until golden. Add ground meat and cook over high heat until brown. Pour in red wine, season with salt and pepper and reduce until dry.
Lower the heat and stir in tomato paste and water. Cook over low heat for about 40 minutes, adding spoonfuls of warm water, if too thick.
Prepare Béchamel sauce: Melt butter in a saucepan, stir in sifted flour and cook over low heat for 1 minute, whisking constantly. Add milk in a steady stream and bring to a boil, whisking constantly. Season with salt and nutmeg. Cook for a few more minutes until thick.
Clean spinach and boil in salted water for 2 - 3 minutes. Drain and squeeze out excess water with a towel. Chop with a knife or food processor.
In a buttered ovenproof baking dish, pour a layer of Bolognese sauce with grated Parmigiano, then arrange a layer of pasta to cover the bottom of the dish.
Make a layer of Béchamel and a layer of meat sauce with Parmigiano. Continue this process, alternating pasta and sauce, and finish with a layer of pasta. Cover with remaining Béchamel sauce and pats of butter.
Cook in a preheated 350°F oven for 30 minutes or until the surface is golden crunchy.
Remove from the oven and set aside to rest for 15 - 20 minutes before serving.