For the sauce: Place the onion, garlic, hot pepper if using and oil in a pot over medium-high heat and cook until softened, about 5 minutes. If grinding meat at home for the meatballs, cut the meat away from the bones and add the bones to the pot and cook until lightly browned. If the pork has skin attached, add this to the pot as well. Add the tomato sauce and bring to a simmer. Taste for seasoning and add salt and pepper as desired. Lower the heat and simmer 30 minutes, while you prepare the meatballs.
For the meatballs: Preheat the oven to 400 degrees F. If grinding meat at home, cut the meat to fit into the grinder and grind into a large bowl, or use meats already ground. Add the parsley, garlic, breadcrumbs, Parmesan, eggs, salt and some pepper to the bowl and blend together well. Test for seasoning by pinching off a small portion of the mixture and cooking in a skillet until done before tasting. If needed, add more salt and pepper to the mixture. With your hands, shape the mixture into 12 to 15 balls and place onto a baking sheet with at least 1 inch of space between. Roast the meatballs until lightly browned, about 20 minutes. If there are bones and pork skin in the sauce, remove these and discard. Transfer the meatballs to the sauce and let simmer together about 20 minutes, while cooking the pasta.
For the pasta: Bring a large pot of water to a boil and salt generously. Add the pasta and cook according to package directions. Drain well and return the pasta to the pot. Add a cup or two of sauce and toss well. Distribute the pasta onto serving plates and top with the sauce and meatballs. Put any extra sauce and meatballs on the table along with Parmesan for everyone to top as desired.