diff --git a/i2p2www/spec/proposals/159-ssu2.rst b/i2p2www/spec/proposals/159-ssu2.rst
index a9e0453b5362643ade9d4bcb1b7886a489e28812..944944e60ad36a53cf2f263672e231feb601fcb8 100644
--- a/i2p2www/spec/proposals/159-ssu2.rst
+++ b/i2p2www/spec/proposals/159-ssu2.rst
@@ -2594,13 +2594,13 @@ Before header obfuscation and protection:
 
 Short Header
 `````````````
-The short header is 13 bytes. It is used after a session is created, for Data messages.
+The short header is 16 bytes. It is used after a session is created, for Data messages.
 or (maybe?) for unauthenticated messages.
 
-TODO 16 bytes would be a lot easier for both AES and ChaCha20.
-We have to decrypt the first part to get the packet type,
-and then must decrypt further if it's actually a long header.
-How can we save the state and continue decrypting the next 16 bytes?
+16 bytes is required, because
+the receiver must decrypt the first 16 bytes to get the message type,
+and then must decrypt an additional 16 bytes if it's actually a long header,
+as indicated by the message type.
 
 Before header obfuscation and protection:
 
@@ -2611,17 +2611,24 @@ Before header obfuscation and protection:
 +----+----+----+----+----+----+----+----+
   |      Destination Connection ID        |
   +----+----+----+----+----+----+----+----+
-  |   Packet Number   |type|
-  +----+----+----+----+----+
+  |   Packet Number   |type|    flags     |
+  +----+----+----+----+----+----+----+----+
 
   Destination Connection ID :: 8 bytes, unsigned big endian integer
 
+  Packet Number :: 4 bytes, unsigned big endian integer
+
   type :: The message type, 0-10
 
-  Packet Number :: 4 bytes, unsigned big endian integer
+  flags :: 3 bytes, unused, set to 0 for future compatibility
 
 {% endhighlight %}
 
+Note: If any out-of-session relay or peer test messages are defined
+and used, we must also have the ver and id fields present.
+
+
+
 
 Connection ID Numbering
 ```````````````````````````
@@ -2698,6 +2705,9 @@ Both the long and short headers are always obfuscated with AES-CBC using
 For SessionCreated, where the destination router hash and IV are not yet known,
 the source router hash and IV are used.
 
+TODO ChaCha20 instead?
+
+
 
 Header Protection
 ```````````````````
@@ -3136,6 +3146,7 @@ Notes
   with excessive padding.  Bob will specify his padding options in Session Created.
   Min/max guidelines TBD. Random size from 0 to 31 bytes minimum?
   (Distribution to be determined, see Appendix A.)
+  TODO UNLESS minimum packet size is enforced for PMTU.
 
 - On any error, including AEAD, DH, timestamp, apparent replay, or key
   validation failure, Bob must halt further message processing and
@@ -3369,6 +3380,7 @@ Notes
   Alice will specify her padding options in Session Confirmed.
   Min/max guidelines TBD. Random size from 0 to 31 bytes minimum?
   (Distribution to be determined, see Appendix A.)
+  TODO UNLESS minimum packet size is enforced for PMTU.
 
 - On any error, including AEAD, DH, timestamp, apparent replay, or key
   validation failure, Alice must halt further message processing and close the
@@ -3474,9 +3486,9 @@ Alice sends to Bob.
 Noise content: Alice's static key
 Noise payload part 1: None
 Noise payload part 2: Alice's RouterInfo, options, data, and padding blocks
-Max payload size: MTU - 105 (IPv4) or MTU - 125 (IPv6)
-For 1280 MTU: Max payload is 1175 (IPv4) or 1155 (IPv6)
-For 1500 MTU: Max payload is 1395 (IPv4) or 1375 (IPv6)
+Max payload size: MTU - 108 (IPv4) or MTU - 128 (IPv6)
+For 1280 MTU: Max payload is 1172 (IPv4) or 1152 (IPv6)
+For 1500 MTU: Max payload is 1392 (IPv4) or 1372 (IPv6)
 
 Payload Security Properties:
 
@@ -3526,9 +3538,9 @@ Raw contents:
   {% highlight lang='dataspec' %}
 +----+----+----+----+----+----+----+----+
   |Short Header obfuscated with dest hash |
-  +encrypted, bytes 8-12   +----+----+----+
-  | header protected       |              |
-  +----+----+----+----+----+              +
+  +       encrypted, bytes 8-15           +
+  |       header protected                |
+  +----+----+----+----+----+----+----+----+
   |   ChaCha20 frame (32 bytes)           |
   +   Encrypted and authenticated data    +
   +   Alice static key S                  +
@@ -3579,17 +3591,17 @@ Unencrypted data (Poly1305 auth tags not shown):
 +----+----+----+----+----+----+----+----+
   |      Destination Connection ID        |
   +----+----+----+----+----+----+----+----+
-  |  Packet Number    |type|              |
-  +----+----+----+----+----+              +
+  |   Packet Number   |type|    flags     |
+  +----+----+----+----+----+----+----+----+
   |                                       |
   +                                       +
   |              S                        |
   +       Alice static key                +
   |          (32 bytes)                   |
   +                                       +
-  |                        +----+----+----|
-  +                        |              +
-  +----+----+----+----+----+              +
+  |                                       |
+  +                                       +
+  +----+----+----+----+----+----+----+----+
   |                                       |
   +                                       +
   |        Noise Payload                  |
@@ -3599,8 +3611,16 @@ Unencrypted data (Poly1305 auth tags not shown):
   |                                       |
   +----+----+----+----+----+----+----+----+
 
-  S :: 32 bytes, Alice's X25519 static key, little endian
+  Destination Connection ID :: As sent in Session Request,
+                               or one received in Session Confirmed?
 
+  Packet Number :: 1 unless retransmitted or resent after Retry
+
+  type :: 2
+
+  flags :: 3 bytes, unused, set to 0 for future compatibility
+
+  S :: 32 bytes, Alice's X25519 static key, little endian
 
 {% endhighlight %}
 
@@ -3697,8 +3717,8 @@ Data Message (Type 6)
 ---------------------------
 
 Noise payload: All block types are allowed
-Max payload size: MTU - 57 (IPv4) or MTU - 77 (IPv6)
-For 1500 MTU: Max payload is 1443 (IPv4) or 1423 (IPv6)
+Max payload size: MTU - 60 (IPv4) or MTU - 80 (IPv6)
+For 1500 MTU: Max payload is 1440 (IPv4) or 1420 (IPv6)
 
 Starting with the 2nd part of Session Confirmed, all messages are inside
 an authenticated and encrypted ChaChaPoly payload.
@@ -3745,9 +3765,9 @@ Notes
   {% highlight lang='dataspec' %}
 +----+----+----+----+----+----+----+----+
   |Short Header obfuscated with dest hash |
-  +encrypted, bytes 8-12   +----+----+----+
-  | header protected       |              |
-  +----+----+----+----+----+              +
+  +       encrypted, bytes 8-15           +
+  |       header protected                |
+  +----+----+----+----+----+----+----+----+
   |   ChaCha20 data                       |
   +   Encrypted and authenticated data    +
   |  length varies                        |
@@ -3771,8 +3791,8 @@ Unencrypted data (Poly1305 auth tag not shown):
 +----+----+----+----+----+----+----+----+
   |      Destination Connection ID        |
   +----+----+----+----+----+----+----+----+
-  |  Packet Number    |type|              |
-  +----+----+----+----+----+              +
+  |   Packet Number   |type|    flags     |
+  +----+----+----+----+----+----+----+----+
   |     Noise payload (block data)        |
   +          (length varies)              +
   |                                       |
@@ -3780,9 +3800,11 @@ Unencrypted data (Poly1305 auth tag not shown):
 
   Destination Connection ID :: As specified in session setup
 
+  Packet Number :: 4 byte big endian integer
+
   type :: 6
 
-  Packet Number :: 4 byte big endian integer
+  flags :: 3 bytes, unused, set to 0 for future compatibility
 
 {% endhighlight %}
 
@@ -5070,10 +5092,10 @@ No IP fragmentation is assumed.
 IP + datagram header is 28 bytes.
 This assumes no IPv4 options.
 Max message size is MTU - 28.
-Data phase header is 13 bytes and MAC is 16 bytes, totalling 29 bytes.
-Payload size is MTU - 57.
-Max data phase payload is 1443 for a max 1500 MTU.
-Max data phase payload is 1223 for a min 1280 MTU.
+Data phase header is 16 bytes and MAC is 16 bytes, totalling 32 bytes.
+Payload size is MTU - 60.
+Max data phase payload is 1440 for a max 1500 MTU.
+Max data phase payload is 1220 for a min 1280 MTU.
 
 
 IPv6:
@@ -5081,10 +5103,10 @@ No IP fragmentation is allowed.
 IP + datagram header is 48 bytes.
 This assumes no IPv6 extension headers.
 Max message size is MTU - 48.
-Data phase header is 13 bytes and MAC is 16 bytes, totalling 29 bytes.
-Payload size is MTU - 77.
-Max data phase payload is 1423 for a max 1500 MTU.
-Max data phase payload is 1203 for a min 1280 MTU.
+Data phase header is 16 bytes and MAC is 16 bytes, totalling 32 bytes.
+Payload size is MTU - 80.
+Max data phase payload is 1420 for a max 1500 MTU.
+Max data phase payload is 1200 for a min 1280 MTU.
 
 
 
@@ -5380,12 +5402,14 @@ Message              Header+MAC    Keys    Data    Padding  Total   Notes
 ==================   ===========   =====   ======  =======  ======  =====
 Session Request      48             32        7               87    DateTime block
 Session Created      48             32        7               87    DateTime block
-Session Confirmed    45             32     1003             1080    RI block
-Data (1 full msg)    13                      14               27     
-Total                                                       1281
+Session Confirmed    48             32     1003             1083    (2 macs) 1000 byte RI block
+Data (1 full msg)    32                      14               46
+Total                                                       1303
 ==================   ===========   =====   ======  =======  ======  =====
 
 
+TODO UNLESS minimum packet size in Session Request and Created is enforced for PMTU.
+