01 - Preheat oven to 350°F. Grease a 9-inch square or round baking dish with butter or nonstick spray.
02 - In a large bowl, whisk together pumpkin puree, eggs, granulated sugar, whole milk, heavy cream, cinnamon, ginger, nutmeg, cloves, salt, and vanilla extract until smooth and well combined. Pour the filling into the prepared baking dish and spread evenly.
03 - In a separate bowl, combine the flour, rolled oats, brown sugar, granulated sugar, cinnamon, and salt. Cut in the cold diced butter using a pastry blender or your fingertips until the mixture forms moist, pea-sized crumbs. Fold in chopped pecans or walnuts if using.
04 - Sprinkle the crisp topping evenly over the pumpkin filling. Bake for 40 to 45 minutes until the topping is golden brown and the filling is set around the edges with a slight jiggle in the center.
05 - Allow to cool for at least 20 minutes before serving. Serve warm or at room temperature, optionally topped with whipped cream or vanilla ice cream.