Preheat the oven to 350°F (175°C). Line a 9×13-inch baking pan with parchment paper, leaving overhang on the sides.
In a large bowl, cream the cold butter and granulated sugar until lightly combined and crumbly.
Add the eggs and vanilla extract; mix until incorporated.
In a separate bowl, whisk together flour, baking powder, and salt. Gradually add to the butter mixture to form a soft dough.
Reserve about ½ cup of the dough for topping. Press the remaining dough evenly into the prepared pan.
Bake the crust for 15–18 minutes, until lightly golden around the edges. Remove and let cool completely.
While the crust cools, prepare the filling. In a mixing bowl, beat the drained ricotta and mascarpone until smooth.
Add powdered sugar, vanilla, cinnamon, and orange zest. Mix until creamy and well combined.
Gently fold in the mini chocolate chips.
Spread the cannoli filling evenly over the cooled crust.
Crumble the reserved dough over the filling or sprinkle with pistachios or chocolate chips.
Refrigerate for at least 2 hours (or overnight) until fully set.
Slice into squares, dust with powdered sugar, and drizzle with melted chocolate if desired before serving.