Den Spinat in einem Sieb auftauen und abtropfen lassen.
Für die Spinatfüllung die Zwiebel und den Knoblauch in 1 EL Butter andünsten. Die Hälfte von den angebratenen Zwiebeln und Knoblauch mit dem Spinat, 400 g Ricotta, Mehl und 50 g Sbrinz vermengen. Die Mischung mit ½ TL Muskatnuss, Salz und Pfeffer abschmecken.
In der Zwischenzeit die Tomaten zu den restlichen Zwiebeln und Knoblauch in den Topf geben und ca. 30 Min. köcheln lassen, bis eine schöne Tomatensauce entsteht.
Für die Bechamelsauce 4 EL Butter in einer Pfanne warm werden lassen. 4 EL Mehl beigeben und unter Rühren mit dem Schwingbesen dünsten - das Mehl darf dabei keine Farbe annehmen! Die Pfanne von der Platte ziehen, 8 dl Milch dazu giessen und unter Rühren aufkochen. Die Hitze reduzieren, 1 TL Salz und ½ TL Muskatnuss dazugeben und bei mittlerer Hitze unter gelegentlichem Rühren ca. 5 Min. köcheln. Wenn die Sauce sämig ist, beiseite stellen.
Die Tomatensauce auf den Boden einer Auflaufform von ca. 34x24 cm geben. Den restlichen Ricotta (sollten ca. 100 g sein) auf der Tomatensauce verteilen und leicht verrühren.
Die Spinatfüllung mit einem Teelöffel oder Messer in die Cannelloni geben und diese einlagig in die Form auf die Tomatensauce legen. Die Bechamelsauce darüber leeren, den Mozzarella in Stücke zupfen und mit dem Sbrinz ebenfalls darauf verteilen.
Die Nudeln in der Mitte des auf 200 Grad vorgeheizten Ofens 35-40 Minuten überbacken.