In a large bowl, combine the beef, pork, breadcrumbs, 1/3 cup parmesan cheese, fresh parsley, egg, oregano, 2 cloves minced garlic, 1 teaspoon salt, and 1/2 teaspoon black pepper.
Mix gently to combine, being careful not to overwork the meat.
Use a heaping teaspoon of meat to create several 1-inch meatballs. You should have about 75 to 80 meatballs.
Heat the olive oil in a large soup pot or Dutch oven over medium-high heat.
Working in batches to prevent crowding the pan, add the meatballs to the pan and cook until browned on all sides.
Transfer the meatballs to paper towel-lined plate (note that the meatballs will not be cooked through yet; they will continue cooking in the soup). Set aside.
Add the onions, carrots, and celery to the same pot over medium-high heat. Cook for 3 to 5 minutes, until the vegetables soften. If necessary, add a little olive oil to prevent the vegetables from sticking to the pan. Add the garlic and cook for 1 minute, until fragrant.
Return the meatballs to the pot. Add the broth and tomato paste bring to a simmer over medium-high heat, scraping up any browned bits from the bottom of the pan.
Stir in the pasta, reduce the heat to medium, and simmer until the pasta is tender, about 10 minutes, stirring occasionally.
Reduce the heat to low, stir in the spinach and cook until wilted, about 1 minute.
Season to taste with salt and black pepper. Ladle the soup into bowls and top with parmesan cheese.