In a large bowl, combine the flour, granulated sugar, and salt. Add the chilled butter and mix until the mixture resembles coarse crumbs. Stir in the vanilla extract. Gradually add cold water, mixing until a dough forms. Wrap the dough in plastic wrap and refrigerate for at least 30 minutes.
Preheat the oven to 400°F (200°C). Roll out the chilled dough on a lightly floured surface to about 1/8 inch thick. Cut into 4-inch squares.
Roll each square around a cannoli tube, sealing the edges with a little water. Place the wrapped tubes on a baking sheet lined with parchment paper.
Bake for 15-20 minutes or until golden brown. Remove from the oven and let cool slightly before carefully removing the tubes. Allow the shells to cool completely on a wire rack.
In a mixing bowl, whip the heavy cream until soft peaks form. In another bowl, combine the mascarpone cheese, powdered sugar, and vanilla extract. Gently fold the whipped cream into the mascarpone mixture until well combined.
Using a piping bag or a zip-top bag with a corner snipped off, fill each cooled cannoncini shell with the cream mixture.
If desired, sprinkle chocolate shavings on top of the filled cannoncini and dust with powdered sugar before serving.