Method:
In a large pot, combine chicken, garlic and 3 quarts (12 cups) water. Bring to a simmer over medium-high heat; lower heat and cook at a gentle simmer, skimming off and discarding any foam from the surface until chicken is just cooked through, about 45 minutes. Remove chicken from liquid and set aside. Strain liquid into a large bowl, cool, cover and refrigerate until fat has solidified on surface of broth, at least 6 hours and up to 2 days. Meanwhile, pull meat from chicken legs and refrigerate; discard skin and bones.
Beat egg whites in a large bowl until they hold soft peaks. Stir egg yolks, matzo meal, oil or chicken fat, 1/2 teaspoon salt and 1/2 cup cold water together in a medium bowl. Fold egg whites into matzo mixture. Cover and refrigerate 30 minutes.
Bring a large pot half full of water to a simmer. Moisten your hands and gently form matzo mixture into balls a little larger than walnuts. Carefully add balls to simmering water. Adjust heat, cover the pan and cook at a gentle simmer until balls are light and fluffy and cooked all the way through, 35 to 40 minutes. Place 3 balls in each of 6 soup bowls.
Meanwhile, remove fat from surface of broth. Pour broth into a large saucepan and add carrots and remaining 1/2 teaspoon salt. Bring to a boil, lower heat and simmer until carrots are tender, about 10 minutes. Stir in spinach and reserved chicken meat and cook until heated through. Ladle hot soup over matzo balls and serve.