Heat 2 tablespoons of the oil in a large heavy skillet. Sauté the onions in it until tender and golden. Add the garlic, celery and beef and cook until the meat loses its red color.
Add the stock, tomato paste, tomatoes, salt and pepper. Bring mixture to a boil and simmer for 1 hour, stirring occasionally. Add more stock if the mixture becomes too thick.
Preheat the oven to 350°F.
Heat the remaining 2 tablespoons oil and sauté the mushrooms briefly. Add to the sauce with the oregano, basil, macaroni and spinach. Pour into a buttered 3-quart casserole. Top with the crumbs mixed with the cheese. Bake for 30 minutes, or until bubbly hot and light brown.