There have been a few problems with the skin servers since the release of Minecraft 1.3.1, at least partly because Mojang changed the skin server frontend (as far as I can tell). This is a little patch that forces Minecraft to use the old Amazon skin server URL rather than the new Minecraft one, bypassing the new frontend.
That's all this does, it doesn't also try and get the skin multiple times or anything else like that, it just forces a different URL to be used for the request. This seems to significantly improve the reliability of loading skins. I know Tobias Mollstam is working hard on this problem but it has been going on long enough that some people might want a workaround until he fixes it. For updates on his progress, you can follow his Twitter here:
The new service has two main problems compared to the old one:
The new service seems less reliable. Requests for skins often result in no data returned or a 503 error. This causes players to randomly look like the default Steve skin.
The new service is not properly syncronised with changes to minecraft.net. It is possible to upload a new skin to a profile minecraft.net and not see this take effect on skins.minecraft.net. The change will take effect as intended on s3.amazonaws.com
I'm not convinced that the new server is always less reliable, this is difficult to test because the reliability of the service fluctuates a lot. Anecdotally this patch seems to result in a lot fewer failed skins for me. @mollstam tweeted that there was a problem with the Amazon servers that was under investigation, so the reliability issue may not be improved by using this fix. However, this should work around the syncronisation issue that a number of players have been experiencing.
This is a very simple patch which effectively reverts this one change, so skins are now requested from s3.amazonaws.com if they would have been requested from skins.minecraft.net. Here's the code for anyone interested, it's a little change in ThreadDownloadImage.java (a.k.a. auy in 1.3.2, ayv in 1.4.1, etc):
To install it just extract the zip file and put the provided new auy.class in your minecraft.jar, overwriting the existing one. You'll also need to delete the META-INF folder from the jar if you're on a PC (or all the files inside META-INF starting with the word "MOJANG" if you're on a Mac) as usual.
Read this spoiler if you need this mod for Minecraft 1.3.1:
This is going to be a bit of a pain, sorry. I'll spare you the technical details, but the short version is that the file this mod changes in Minecraft 1.3.1 is called "aux.class". Windows refuses to create files with the name "aux.class", so Windows screws you up if you try to extract a file with that name and then put it into your minecraft.jar.
So, I've made a download that includes a file called "aux(1).class" instead. What you need to do is open your minecraft.jar, make the required changes to META-INF, then drop "aux(1).class" into your jar. Then while you're still in the jar, delete the original "aux.class" from the jar, and rename "aux(1).class" to "aux.class" within the jar. Sorry this is a pain, blame Windows (or Mojang who decided this was a pretty cool name for a file) not me! As usual, don't forget to backup your minecraft.jar before you begin.
I won't keep maintaining this if it looks like Mojang have fixed their new skin server, and this will break if Mojang ever disable their old skin server. Backup your minecraft.jar first. Caveat emptor, your mileage may vary, if you install this you accept full responsibility for breaking your Minecraft, etc, etc.
Excellent, it seems to be working for me too, I've been switching between using this and not using it all day while testing other stuff. My skins always seem to get loaded when I use this, when moments before (and not using this) they didn't work.
Btw, is it okay if I advertise about this in my sig?