Preheat oven to 325F. Grease and flour two 7x11 inch pan or one 15 ½ by 10 ½ inch jelly roll pan.
In a mixing bowl, mix together the flour, sugar, baking soda, cinnamon and salt.
In a saucepan, melt the butter. Add the peanut butter, oil and water. Stir over lowest heat until smooth, then pour over dry ingredients. Stir by hand to mix, then stir in the milk and the egg.
Beat by hand just until smooth, then pour in the pan and bake for about 28 minutes. Could take a little longer. This cake is so moist that even if you overbake by a few minutes it will most likely still be awesome.
To make the frosting, you can use the same saucepan you used for the cake. Wipe it out and add the sugar, evaporated milk, butter and salt.
Heat over medium until boiling, then do a very controlled boil for 1 minute.
Remove from heat, add peanut butter, marshmallows and vanilla and stir until smooth.
Pour the smooth and creamy mixture over the warm cake and let it cool completely. If it doesn't set completely when cool, throw it in the freezer or refrigerator. This will set the top and tighten the crumb a bit if needed.