Lightly butter a 9 x 13 inch casserole dish. Heat oven to 350 degrees. In skillet, sauté onion and garlic in olive oil until soft and translucent. If using mushrooms, add to onion and garlic and cook until softened. Add beef and pork and cook until done. Add marinara sauce and basil, stirring to combine. Simmer for 15 minutes. Meanwhile, make the filling. In a bowl, combine, ricotta, sour cream or cream cheese, egg and 1 cup mozzarella, salt and pepper. Stir to completely combine. Cook the pasta according to package instructions. Drain without rinsing. In the prepared casserole dish, spoon a layer of meat sauce on the bottom. Add the pasta evenly over the meat sauce. Spoon the remainder of the meat sauce over top of pasta. Spoon the cheese mixture over the meat sauce. Cover with 2 remaining cups of Parmesan followed by remaining 2 cups of mozzarella. Bake for 25-30 minutes or until golden brown on top. Sprinkle fresh chopped parsley or basil over top. Serve immediately.