Place beef, onion and garlic in a pot and cook over medium heat until meat is cooked through. Drain excess fat. Add pasta sauce and stock, bring to a simmer, loosely cover, and cook 20 minutes. Season the sauce with salt and pepper.
Spoon 1 cup of the sauce into a deep 9" x 13" baking dish. Top sauce with 4 lasagna noodles, arranging and overlapping as needed. Top noodles with half of the remaining sauce.
Sprinkle and top sauce with 1/3 of the mozzarella cheese and 1/2 the spinach.
Top the spinach with 4 more noodles. Top those noodles with remaining sauce, 1/2 the remaining mozzarella, and the remaining spinach. Top the spinach with the remaining noodles. Gently press down on the top four noodles to compress the layers.
Preheat the oven 350ºF. Make béchamel sauce by melting the butter in a small pot. Mix in flour and cook 2 minutes. While whisking, slowly mix the milk. Bring to simmer, cook 1 minute, and then remove from the heat.
Beat the egg in a small bowl. Very slowly beat in 1/2 cup of béchamel. Now mix this mixture into the pot with remaining béchamel; season with salt, white pepper and nutmeg.
Spread the béchamel on top of the lasagna, ensuring it completely covers the noodles. Sprinkle with Parmesan and remaining mozzarella. Tent lasagna with foil and bake lasagna 40 minutes. Now uncover and bake 25 minutes more, or until the top is light golden and the filling bubbling. Rest lasagna 10 minutes before slicing. Sprinkle servings, if desired, with chopped parsley.