"Paired end" is pretty straight forward, you make fragments, you sequence both ends, and you have some knowledge of the distribution of fragment sizes in your library, so that helps you properly map.
One might want to make a library of 2 kb long fragments, so that you could get paired end data where each end is expected to be about that far from the other end, but there are practical reasons why you can't. Mate pair preps are designed to get around this. It's a more involved process that involves doing a lot of stuff so that in the end, you have 500 bp fragments, but the sequence at each end originated from regions of the reference that are much farther apart.
In terms of the resulting sequenced data, they are pretty much the same thing. Although you might be able to argue that the quality of pairing might differ.
They differ in library preparation. In pair-end sequencing, the machine is sequencing the ends of a fragment. So if you have a 500bp fragment, you machine will sequence 1-75 and 425-500 of the fragment. In mate-pair libraries, you are creating a library of fragment ends and then performing normal sequencing on these end fragments,