Alright, I think I have a much better understanding of perlin noise now, and I cleaned up my perlin and value noise functions a bunch. Still doesn;t quite work the way I want it too - the peaks aren's as high as they should be, specifically, and it's really messy. I'm gonna read up on simplex noise next, and try and implement that, I think.