Post-release documentation updates
diff --git a/CHANGES.md b/CHANGES.md
index 1d40a2b..7189eb0 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -8,8 +8,11 @@
 generated by [japicmp](https://siom79.github.io/japicmp) are published at
 [https://apache.github.io/mina-sshd](https://apache.github.io/mina-sshd).
 
-Version 3 includes all the features and bug fixes of [version 2.16.0](./docs/changes/2.16.0.md) and up to
-[commit f9887391](https://github.com/apache/mina-sshd/blob/f9887391/CHANGES.md#planned-for-next-version).
+Version 3 includes all the features and bug fixes of version 2, including the
+[latest ones](https://github.com/apache/mina-sshd/blob/master/CHANGES.md#planned-for-next-version).
+
+* For building Apache MINA SSHD 3.0, **Java >= 24** and Apache **Maven >= 3.9.11** are required. Generated artifacts
+  still use Java 8 as minimum runtime requirement.
 
 ## Milestone 1: Pre-Release 3.0.0-M1
 
@@ -17,66 +20,21 @@
 
 * [Change notes for 3.0.0-M1](./docs/changes/3.0.0-M1.md)
 
-# Milestone 2: Pre-Release 3.0.0-M2
+## Milestone 2: Pre-Release 3.0.0-M2
 
 Refactoring of cryptography. New feature: multi-release JARs for `sshd-common` and `sshd-osgi` and using on
 newer Java versions the already built-in cryptographic algorithms for ChaCha20, ed25519, and ML-KEM.
 
-* For building Apache MINA SSHD 3.0, Java >= 24 and Apache Maven >= 3.9.11 are required. Generated artifacts
-  still use Java 8 as minimum runtime requirement.
+* [Change notes for 3.0.0-M2](./docs/changes/3.0.0-M2.md)
+
+# Planned for the Next Milestone Release
+
 
 ## Bug Fixes
 
-* [GH-502](https://github.com/apache/mina-sshd/issues/502) Don't load security provider classes reflectively
-  for Bouncy Castle and `net.i2p.crypto:eddsa:0.3.0`.
 
 ## Major Code Re-factoring
 
-* The classes dealing with serializing or de-serializing public and private keys have been de-generified,
-  which simplifies them a lot. Previous code from version 2 tried to tie particular public key types and
-  private key types together via generics, such that it could be statically checked that only matching key
-  types were used. But that never worked well and in a few crucial places unchecked conversions or raw
-  types were used anyway, which makes the point moot. Code now just uses `PublicKey` and `PrivateKey` instead
-  of generic types, and checks at run-time that keys are of the expected kind.
-* The way ed25519 keys are handled has been refactored. Duplicate code has been removed, and the handling
-  has been simplified to make it easier to include support for other eddsa implementations. This brings
-  additional API breaks, but in code areas that are unlikely to be used in customer code.
 
 ## New Features
 
-* [GH-585](https://github.com/apache/mina-sshd/issues/585) Support the JDK built-in ed25519 on Java15+
-
-  With this change `sshd-common` and `sshd-osgi` become MRJARs (multi-release JARs). When run on Java >= 15,
-  Apache MINA SSHD will use the built-in ed25519 from the SunEC security provider. On Java < 15, ed25519 is
-  supported if Bouncy Castle or `net.i2p.crypto:eddsa:0.3.0` is present.
-
-  On Java >= 15, Apache MINA SSHD will use the JDK ed25519 even if Bouncy Castle or `net.i2p.crypto:eddsa:0.3.0`
-  are present. (Including `net.i2p.crypto:eddsa:0.3.0` makes no sense on Java >= 15.) There is a new
-  [registrar](./docs/security-providers.md) `SunECSecurityProviderRegistrar` with the name "SunECWrapper". It
-  is by default registered ahead of the Bouncy Castle or net.i2p registrars, and has by default ed25519,
-  X25519, and X448 enabled if SunEC is registered and has these algorithms. This new registrar can be 
-  configured like any other registrar via system properties; in particular it can also be disabled via system
-  property `org.apache.sshd.security.provider.SunECWrapper.enabled=false`.
-
-  The sole purpose of this new registrar is to prefer the SunEC implementations of ed25519, X25519, or X448 over
-  the Bouncy Castle or net.i2p implementations if Bouncy Castle or net.i2p are also available.
-
-* Use the JDK's built-in ChaCha20 cipher on Java11+
-
-  With `sshd-common` being a MRJAR, it is finally possible to use the JDK's built-in ChaCha20 cipher for the
-  chacha20-poly1305@<!-- -->openssh.com cipher on Java >= 11. This brings a substantial speed-up for this
-  encryption. On Java < 11, Apache MINA SSHD still uses its own implementation written in Java.
-  
-  (Note that one cannot use the JDK's "ChaCha20-Poly1305" cipher for SSH; Java implements
-  [RFC 8439](https://datatracker.ietf.org/doc/html/rfc8439), which has a different AEAD tag construction than
-  the version used in SSH. Since the Poly1305 MAC in Java is not accessible separately (see
-  [JDK-8253394](https://bugs.openjdk.org/browse/JDK-8253394)), Apache MINA SSHD still has to use its own
-  implementation for that part.)
-
-* [GH-803](https://github.com/apache/mina-sshd/issues/803) Support the JDK built-in ML-KEMs on Java24+
-
-  Use the ML-KEM implementations from SunJCE if run on Java >= 24. For Java < 24, the Bouncy Castle implementations
-  are used. The SunJCE ML-KEMs are advertised in the `SunJCESecurityProviderRegistrar`.
-
-* OSGi: the upper bound of the version range for package imports from `org.bouncycastle.*` has been raised from 2.0.0
-  to 3.0.0. This enables using BC-FIPS in an OSGi environment. BC-FIPS provides OSGi manifests as of version 2.1.0.
diff --git a/docs/changes/3.0.0-M2.md b/docs/changes/3.0.0-M2.md
new file mode 100644
index 0000000..61c79fc
--- /dev/null
+++ b/docs/changes/3.0.0-M2.md
@@ -0,0 +1,65 @@
+# Milestone Pre-Release 3.0.0-M2
+
+Includes all the features and bug fixes of [version 2.16.0](./2.16.0.md) and up to
+[commit f9887391](https://github.com/apache/mina-sshd/blob/f9887391/CHANGES.md#planned-for-next-version).
+
+* [Change notes for 3.0.0-M1](./3.0.0-M1.md)
+
+* For building Apache MINA SSHD 3.0, **Java >= 24** and Apache **Maven >= 3.9.11** are required. Generated artifacts
+  still use Java 8 as minimum runtime requirement.
+
+## Bug Fixes
+
+* [GH-502](https://github.com/apache/mina-sshd/issues/502) Don't load security provider classes reflectively
+  for Bouncy Castle and `net.i2p.crypto:eddsa:0.3.0`.
+
+## Major Code Re-factoring
+
+* The classes dealing with serializing or de-serializing public and private keys have been de-generified,
+  which simplifies them a lot. Previous code from version 2 tried to tie particular public key types and
+  private key types together via generics, such that it could be statically checked that only matching key
+  types were used. But that never worked well and in a few crucial places unchecked conversions or raw
+  types were used anyway, which makes the point moot. Code now just uses `PublicKey` and `PrivateKey` instead
+  of generic types, and checks at run-time that keys are of the expected kind.
+* The way ed25519 keys are handled has been refactored. Duplicate code has been removed, and the handling
+  has been simplified to make it easier to include support for other eddsa implementations. This brings
+  additional API breaks, but in code areas that are unlikely to be used in customer code.
+
+## New Features
+
+* [GH-585](https://github.com/apache/mina-sshd/issues/585) Support the JDK built-in ed25519 on Java15+
+
+  With this change `sshd-common` and `sshd-osgi` become MRJARs (multi-release JARs). When run on Java >= 15,
+  Apache MINA SSHD will use the built-in ed25519 from the SunEC security provider. On Java < 15, ed25519 is
+  supported if Bouncy Castle or `net.i2p.crypto:eddsa:0.3.0` is present.
+
+  On Java >= 15, Apache MINA SSHD will use the JDK ed25519 even if Bouncy Castle or `net.i2p.crypto:eddsa:0.3.0`
+  are present. (Including `net.i2p.crypto:eddsa:0.3.0` makes no sense on Java >= 15.) There is a new
+  [registrar](./../security-providers.md) `SunECSecurityProviderRegistrar` with the name "SunECWrapper". It
+  is by default registered ahead of the Bouncy Castle or net.i2p registrars, and has by default ed25519,
+  X25519, and X448 enabled if SunEC is registered and has these algorithms. This new registrar can be 
+  configured like any other registrar via system properties; in particular it can also be disabled via system
+  property `org.apache.sshd.security.provider.SunECWrapper.enabled=false`.
+
+  The sole purpose of this new registrar is to prefer the SunEC implementations of ed25519, X25519, or X448 over
+  the Bouncy Castle or net.i2p implementations if Bouncy Castle or net.i2p are also available.
+
+* Use the JDK's built-in ChaCha20 cipher on Java11+
+
+  With `sshd-common` being a MRJAR, it is finally possible to use the JDK's built-in ChaCha20 cipher for the
+  chacha20-poly1305@<!-- -->openssh.com cipher on Java >= 11. This brings a substantial speed-up for this
+  encryption. On Java < 11, Apache MINA SSHD still uses its own implementation written in Java.
+  
+  (Note that one cannot use the JDK's "ChaCha20-Poly1305" cipher for SSH; Java implements
+  [RFC 8439](https://datatracker.ietf.org/doc/html/rfc8439), which has a different AEAD tag construction than
+  the version used in SSH. Since the Poly1305 MAC in Java is not accessible separately (see
+  [JDK-8253394](https://bugs.openjdk.org/browse/JDK-8253394)), Apache MINA SSHD still has to use its own
+  implementation for that part.)
+
+* [GH-803](https://github.com/apache/mina-sshd/issues/803) Support the JDK built-in ML-KEMs on Java24+
+
+  Use the ML-KEM implementations from SunJCE if run on Java >= 24. For Java < 24, the Bouncy Castle implementations
+  are used. The SunJCE ML-KEMs are advertised in the `SunJCESecurityProviderRegistrar`.
+
+* OSGi: the upper bound of the version range for package imports from `org.bouncycastle.*` has been raised from 2.0.0
+  to 3.0.0. This enables using BC-FIPS in an OSGi environment. BC-FIPS provides OSGi manifests as of version 2.1.0.
diff --git a/sshd-site/src/site/markdown/index.md b/sshd-site/src/site/markdown/index.md
index 99963b1..56e84f5 100644
--- a/sshd-site/src/site/markdown/index.md
+++ b/sshd-site/src/site/markdown/index.md
@@ -42,14 +42,16 @@
 
 But we can give you a rough outline of what we want to do:
 
-* **3.0.0-M1**: Rework of the SSH transport protocol as a filter chain. The main user-visible new feature is support for client-side proxies.
+* **3.0.0-M1**: Rework of the SSH transport protocol as a filter chain. The main user-visible
+  new feature is support for client-side proxies.
+* **3.0.0-M2**: Refactoring of cryptography. New feature: multi-release JARs for `sshd-common`
+  and `sshd-osgi` and using on newer Java versions the already built-in cryptographic algorithms
+  for ChaCha20, ed25519, and ML-KEM.
 
 Further possible milestones (the order might change, though):
 
-* Some rework of handling of private/public keys. No new feature planned, it's necessary clean-up that will require some public API changes.
-* Resolve the split packages between `sshd-common` and `sshd-core`.
-* Support Java native ed25519 on Java >= 15. This may result in a multi-release JAR artifact.
 * Some refactoring of SFTP code; current code has shortcomings regarding SFTP file systems.
+* Resolve the split packages between `sshd-common` and `sshd-core`.
 * Anything else we stumble upon and that we cannot fix reasonably without breaking API.
 
 We reserve the right to make arbitrary API changes between M-releases.
\ No newline at end of file