Add all the meatball ingredients (excluding the olive oil) to a large bowl and mix well, use your hands. Shape into 1 inch meatballs. You should get about 40 meatballs.
Add the olive oil to a large skillet and heat over medium to high heat. Add meatballs and cook. If you're using a large skillet all meatballs should fit in one batch otherwise, you might have to fry them in a couple batches. Cook the meatballs on all sides, add more oil if needed. Remove meatballs from skillet and set aside.
To the same skillet add butter and melt. Add onion and cook until onion is soft and translucent. In a bowl add the cornstarch and beef broth and whisk. Add broth and remaining gravy ingredients to skillet, and cook for about 3 to 5 minutes, sauce should thicken. If the sauce is too thick add a bit more beef broth. Taste for seasoning and adjust as necessary.
When the gravy is done add the meatballs back to the skillet and toss them around so they're covered in the gravy. Garnish with parsley.
For Mashed Potatoes
Peel the potatoes and cut them in 1 inch cubes. Boil them on medium heat until potatoes are tender, for about 20 minutes.
Drain potatoes and in a medium bowl, add the potatoes, milk, butter, cream cheese and salt and pepper. Using a potato masher mash the potatoes until desired consistency. You may also use a hand mixer if you wish. Add additional milk as necessary.
Serve meatballs over mashed potatoes.
To prevent your meatballs from crumbling and falling apart, do not overcrowd your meatballs while cooking them. Leave about 1/2 inch of space in between. It's best to do it in a couple batches. It can also be an issue with the binding, so either not enough egg or too much breadcrumbs, if your eggs are too small, add another egg, that should help bind the meatballs better.
Please keep in mind that nutritional information is a rough estimate and can vary greatly based on products used.