Minecraft 26.3 snapshot 2
The second 26.3 snapshot is out, with many technical changes.
These writeups assume you have read the Official Changelog before continuing.
Table of Contents
Blocks
Shelf Mushroom
Small shelf mushrooms now consist of two collision boxes:
- A larger hitbox 0.625 × 0.125 × 0.4375 blocks in size, resting 0.5625 blocks off the ground
- A smaller hitbox 0.375 × 0.0625 × 0.25 blocks in size, resting 0.5 blocks off the ground
Large shelf mushrooms now consist of two collision boxes:
- A larger hitbox 0.875 × 0.1875 × 0.625 blocks in size, resting 0.5 blocks off the ground
- A smaller hitbox 0.5 × 0.125 × 0.375 blocks in size, resting 0.375 blocks off the ground
Wool
Wool stairs now smelt 1/2 of an item each, and wool slabs now smelt 1/4 of an item each.
Mobs
Wandering traders now sell 8 poplar logs for 1 emerald up to 4 times.
Striders no longer have a 1/30 chance to spawn with a zombified piglin if the spawn_monsters game rule is false.
Options
F3+X now toggles the Improved Transparency setting.
Data Packs
Data Components
Projectiles can no longer break blocks in adventure mode (fix for
MC-309081
) unless the item that shot the projectile’s can_break component allows breaking that block.
Block State Providers
The copy_properties_provider block state provider has a field named source_block_state_provider, not block_state_provider.
Int Providers
The very_biased_to_bottom int provider uses this code to generate a random number, where randInt(x) generates a random integer from 0 (inclusive) to x (exclusive):
min + randInt(randInt(randInt(max - min + 1) + 1) + 1)
Debug Properties
Removed -DMC_DEBUG_CARVERS.
Mojang API
The game no longer hardcodes API endpoints. Instead, the game sends a GET request to the delivery service at https://discovery.minecraftservices.com/minecraft/client, which returns all services and their endpoints:
{
"environment": "prod",
"product": "minecraft",
"discovery": {
"authentication": {...},
"session": {...},
"player": {...},
"profiles": {...},
"telemetry": {...},
}
}
Contained in each service’s {...} is a map from endpoint keys to URIs.
{
"<key>": {
// Can contain arguments such as {name}
"uri": "<uri>",
},
...
}
Below is a table of all endpoints the game uses, and the service and endpoint key used to discover that endpoint:
| Host | Current Endpoint | Service | Endpoint Key | Arguments |
|---|---|---|---|---|
| Services | GET /publickeys
|
authentication |
getPublicKeys |
|
| Services | POST /authentication/login_with_xbox
|
authentication |
loginXbox |
|
| Session | GET /session/minecraft/profile
|
session |
getProfileById |
{profileId} |
| Session | GET /session/minecraft/hasJoined
|
session |
verify |
|
| Session | POST /session/minecraft/join
|
session |
join |
|
| Services | POST /player/certificates
|
player |
getCertificates |
|
| Services | GET /player/attributes
|
player |
getAttributes |
|
| Services | POST /player/attributes
|
player |
updateAttributes |
|
| Services | GET /privacy/blocklist
|
player |
getBlocklist |
|
| Services | POST /player/report
|
player |
sendReport |
|
| Services | GET /friends
|
player |
getFriends |
|
| Services | PUT /friends
|
player |
updateFriends |
|
| Services | POST /presence
|
player |
updatePresence |
|
| Profiles | GET /minecraft/profile/lookup/name/
|
profiles |
getByName |
{name} |
| Profiles | POST /minecraft/profile/lookup/bulk/byname
|
profiles |
getManyByName |
|
| Services | POST /events
|
telemetry |
sendEvents |
Where “Host” is the base URL of the current endpoint:
- Services:
https://api.minecraftservices.com - Session:
https://sessionserver.mojang.com - Profiles:
https://api.mojang.com
The getTextures endpoint key under the profiles service instead returns a list of URIs that, when the argument {textureId} is removed, determines which URIs are valid skin texture hosting locations:
{
"getTextures": {
"validUris": [
"https://textures.minecraft.net/texture/{textureId}",
"http://textures.minecraft.net/texture/{textureId}"
]
}
}
Edits
September 6, 2026
- Correct official changelog mistake for
copy_properties_provider