diff --git a/doc/mapformat.txt b/doc/worldformat.txt
similarity index 94%
rename from doc/mapformat.txt
rename to doc/worldformat.txt
index 2b049adcdec43647fd0dd08ae26d6689d02c1acb..d3b1b11899f91eb56fdf19c739841c7c2d574f44 100644
--- a/doc/mapformat.txt
+++ b/doc/worldformat.txt
@@ -41,13 +41,21 @@ auth.txt
 ---------
 Contains authentication data, player per line.
   <name>:<password hash>:<privilege1,...>
-Format of password hash is <name><password> SHA1'd, in the base64 encoding.
+
+Legacy format (until 0.4.12) of password hash is <name><password> SHA1'd,
+in the base64 encoding.
+
+Format (since 0.4.13) of password hash is #1#<salt>#<verifier>, with the parts inside <> encoded in the base64 encoding.
+<verifier> is an RFC 5054 compatible SRP-2048-SHA1 verifier
+of the given salt, password, and the player's name lowercased.
 
 Example lines:
 - Player "celeron55", no password, privileges "interact" and "shout":
     celeron55::interact,shout
-- Player "Foo", password "bar", privilege "shout":
+- Player "Foo", password "bar", privilege "shout", with a legacy password hash:
     foo:iEPX+SQWIR3p67lj/0zigSWTKHg:shout
+- Player "Foo", password "bar", privilege "shout", with an up to date pw hash (yes it is THAT long):
+    foo:#1#hPpy4O3IAn1hsNK00A6wNw#Kpu6rj7McsrPCt4euTb5RA5ltF7wdcWGoYMcRngwDi11cZhPuuR9i5Bo7o6A877TgcEwoc//HNrj9EjR/CGjdyTFmNhiermZOADvd8eu32FYK1kf7RMC0rXWxCenYuOQCG4WF9mMGiyTPxC63VAjAMuc1nCZzmy6D9zt0SIKxOmteI75pAEAIee2hx4OkSXRIiU4Zrxo1Xf7QFxkMY4x77vgaPcvfmuzom0y/fU1EdSnZeopGPvzMpFx80ODFx1P34R52nmVl0W8h4GNo0k8ZiWtRCdrJxs8xIg7z5P1h3Th/BJ0lwexpdK8sQZWng8xaO5ElthNuhO8UQx1l6FgEA:shout
 - Player "bar", no password, no privileges:
     bar::
 
@@ -204,14 +212,14 @@ algorithm, defined here in Python:
 
   def getBlockAsInteger(p):
       return int64(p[2]*16777216 + p[1]*4096 + p[0])
-  
+
   def int64(u):
       while u >= 2**63:
           u -= 2**64
       while u <= -2**63:
           u += 2**64
       return u
-  
+
 It can be converted the other way by using this code:
 
   def getIntegerAsBlock(i):
@@ -221,7 +229,7 @@ It can be converted the other way by using this code:
       i = int((i - y) / 4096)
       z = unsignedToSigned(i % 4096, 2048)
       return x,y,z
-  
+
   def unsignedToSigned(i, max_positive):
       if i < max_positive:
           return i