Adjust oven rack to center position and preheat oven to 375°F. Line a large rimmed baking sheet with foil. Wash sweet potatoes, scrubbing off any dirt, and pat dry. Arrange potatoes on baking sheet and cook for 1 hour.
While the potatoes are baking, prepare pecan streusel by using a fork or pastry blender to cut together butter, brown sugar, pecans, flour, cinnamon, and salt until well blended. (You may also pulse the streusel together in a food processor, if that's easier.)
After an hour of cooking time, insert a fork into the center of each potato. If potatoes are not done, bake for 15 more minutes or until completely tender.
Using an oven mitt or kitchen towel to handle hot potatoes, slice a thin piece off the top of each sweet potato and discard. Scoop out the flesh from each sweet potato, leaving a ¼-inch layer intact to create a sturdy shell. Transfer the potato pulp to a bowl and mash well with maple syrup, butter, cream cheese, vanilla, cinnamon, salt, nutmeg, and ginger until smooth and well blended (I use an electric stand mixer for this step).
Scoop the sweet potato mixture into a gallon-sized plastic baggie and twist the top closed to create a piping bag. Cut a 1-inch piece off one corner of the bag and pipe the mixture into the sweet potato shells, evenly dividing it between them (alternatively, you may use a spoon to fill the shells).
Top each sweet potato with pecan streusel. Bake for 10 minutes. If desired, broil for an additional 1 to 2 minutes or until lightly browned. If using marshmallows, bake for 7 to 10 minutes, watching closely until desired level of toastiness is reached.