Cook pie crust according to directions.
While crust is cooking, separate the egg yolks and whites, putting ALL of the whites in a bowl and only keeping 2 of the yolks, in a separate bowl.
Cook pudding according to directions. When pudding is almost done, slightly beat the yolks and slowly add a couple of spoonfuls of the hot pudding to the eggs, raising the temperature the eggs.
Stir and pour egg/pudding mixture into the pudding and continue to cook and stir for a couple of more minutes. (Note: At this point, you may add the butter and vanilla. These ingredients are optional, but add to a more rich, homemade taste.)
Remove from the heat and add 1-2 handfuls of coconut to the pudding. If you really love coconut, you may add a little more.
Pour into cooked pie crust.
Meringue:
Put the egg whites into a mixing bowl and begin mixing on MEDIUM speed using the whisk attachment, if you have one. If not, a hand mixer will work, as well.
When it begins to turn white and looking like meringue, raise the speed to HIGH and add the sugar, one TBSP at a time. Be sure to keep the mixer running. Do not stop it to add the sugar.
Beat on high until stiff glossy peaks form and sugar is dissolved.
Spread meringue evenly over coconut filling, sealing edges to crust. (This is real important for the meringue not to shrink when baking).
Sprinkle with flaked coconut and bake for 10-15 minutes or until the meringue is golden.
Cool for 1 hour and refrigerate for at least 3 hours before serving.