Mojang has released the new Minecraft snapshot 25w16a for Java Edition. This snapshot does not introduce any new features, which was expected since last week's snapshot added the happy ghast, ghastlings, dried ghast blocks, and many other elements.Even though there are no new features, Mojang has made some major changes to how leashes work in Minecraft. You can now use them to connect mobs together and even to carry large entities like boats, horses, sniffers. Mojang has made an exciting update to leashes, making them more useful than ever before.Aside from the leash changes, Minecraft snapshot 25w16a also introduced a quality-of-life improvement to elytra and the way clouds appear in the title. Several bug fixes have also included.Without further ado, let's go through the patch notes for the latest Minecraft snapshot.Minecraft snapshot 25w16a patch notes: Everything you need to knowChangesChanged leash mechanicsChanged Elytra so that while gliding, using a firework will only be used as a boost even if placed on a blockClouds now exist all the way to the horizonReverted the fix for MC-101556: Nether Portal teleport range is too large (equivalent to a full block)Developer's Note:After consideration, we have decided to revert this change as it came in quite late in the snapshot cycle and unintentionally broke some functionality that our community were relying on. We'd like to revisit this at some point when we have time to deal with the issues that showed up due to this changeLeash changesLeashes are now rendered twice as thick, to match bedrockLeashes can now be used to leash two mobs togetherSneak-interact on any mob while holding a bunch of leashed mobs will leash these mobs to the interacted entityYou now cannot leash anything to itselfIf the re-leashing an entity would result in immediate leash snapping due to distance, the re-leashing would not happenLeashes can be snipped from an entity when interacting them with ShearsThis applies to its own leash connection as well as all entities attached to itDispensers can now snip leashes from entities in front of them when they are equipped with ShearsImproved leash mechanics, with reworked leash physics, allowing for more stable leash connection, especially when leashed entities are not on groundWhen dragged on the leash, leashed objects will now orient themselves towards the leasherUsing a firework rocket when flying with leashed entities will now break the leash connectionsWhen leashing an already leashed mob, the current leash will now snap and a player will re-leash the object to yourselfYou cannot steal leashed entities from other playersInteractions with a Leash Knot and Fence Blocks have changed:When interacting with a Leash Knot or a Fence Block, if there are any player-leashed entities in range of the leash knot, they will be re-leashed to the Leash Knot or a Fence BlockIn case of attaching of mobs fails due to distance or there is nothing to attach, the player will now transfer all fence leashed entities to itselfIf there is nothing left attached to the Leash Knot, it disappearsSneak-interact can only result in attaching of the player mobs to the fenceInteracting with Shears or punching the Leash Knot will result in all current connections brokenBoats and large mobs that can be leashed, but cannot fit in the boat (Horses, Donkey, Mule, Camel and Sniffer) can now be leashed in a special 4-leash configuration to the Happy GhastHappy Ghast will also present a custom layer when its leashing something using a quad connectionLeashed in quad connection are now rendered without slackLeash snapping distance has been changed from 10 to 12 blocksThe distance between centers of entities bounding boxes, rather than their feet is used to determine the distance between two leashed entitiesHappy Ghast leash is now longer - with free roaming distance of 10 blocks and leash snapping at 16 blocksAlso Read: How to tame happy ghast in MinecraftTechnical changes in Minecraft snapshot 25w16aThe Data Pack version is now 73The Resource Pack version is now 57Data Pack Version 73Data Componentspainting/variant Item ComponentNo longer accepts inline variantsResource Pack Version 57All core shader uniforms are now uniform blocksThe cloud texture (clouds.png) can no longer be coloredBlock Model rotations are no longer limited to multiplies of 22.5Block Modelselements[].rotation.angle value in block models is no longer limited to multiplies of 22.5 degrees and can now be any angle from -45 to +45Shaders & Post-process EffectsDeveloper's Note: Although it is possible in Resource Packs, overriding Core Shaders is considered as unsupported and not an intended Resource Pack feature. These shaders exist as part of the internal implementation of the game, and as such, may change at any time as the game's internals evolve. We understand that overriding Core Shaders is used for very cool Resource Pack features, many of which lack supported alternatives. We would like to provide better, supported alternatives in the future.All built-in uniforms are now uniform blocks instead of opaque loose uniformsCustom uniforms provided to post-process shaders are now uniform blocksUniform definitions inside json files are now per-blockPost-process Effect DefinitionsEntries in the targets map have been expanded to support new propertiesNew optional boolean field: persistent (default: false)If true, this render target will be persistent across framesThe contents of the target will be cleared when the screen is resizedNew optional field: clear_color (default: [0, 0, 0, 0])Format: integer ARGB value, or float array in order [R, G, B, A]When this target is created or cleared, it will be filled with this colorThe uniforms values is now a list-per-block, instead of a global liste.g. uniforms: { "UniformBlockName": [ { "type": "vec2", "value": [...] } ] }The order of uniforms in a block must match the order in the shadername as part of a uniform definition is no longer usedWe encourage setting it to help keep the json file organised/readable, but the game won't use itvalue as part of a uniform definition replaces the old values, and the type depends on the type fieldThis field is required"type": "int" needs "value": 123 (a single int)"type": "float" needs "value": 123.4 (a single float)"type": "vec2" needs "value": [1.2, 3.4] (two floats)"type": "vec3" needs "value": [1.2, 3.4, 5.6] (three floats)"type": "ivec3" needs "value": [1, 2, 3] (three ints)"type": "vec4" needs "value": [1.2, 3.4, 5.6, 7.8] (four floats)"type": "matrix4x4" needs "value": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0] (four rows of four columns of floats)We do not validate that the uniform block is valid for a given shader, giving incorrect information will cause undefined and funky behaviorPost-process Effect ShadersInstead of every uniform being an individual opaque type, they are now grouped in uniform blocksThey will be set according to the pass definition in the json file, and may be shared across both vertex and fragment shadersThe list of sizes (all vec2 *Size uniforms) are now replaced with a single SamplerInfo uniform blockThis contains, in order, the size of the output texture followed by the size every input textureThe order of textures in the definition file will dictate the order of samplers in this uniformFor most post chains this is just OutSize and InSize as beforeAll sizes are vec2post/bits.fshExpects a BitsConfig of float Resolution and float MosaicSizepost/blit.fshExpects a BlitConfig of vec4 ColorModulatepost/blur.vshandpost/box_blur.fshExpects a BlurConfig of vec2 BlurDir and float Radiuspost/color_convolve.fshExpects a ColorConfig of vec3 RedMatrix, vec3 GreenMatrix and vec3 BlueMatrixpost/invert.fshExpects a InvertConfig of float InverseAmountpost/rotscale.vshExpects a RotScaleConfig of vec2 InScale, vec2 InOffset and float InRotationpost/spiderclip.fshExpects a SpiderConfig of vec4 Scissor and vec4 VignetteGlobalsUniform BlockAvailable through #moj_import <minecraft:globals.glsl> for convenienceMost shaders are able to receive this uniform block, even if they don't normally use itContains ScreenSize, GlintAlpha, GameTime and MenuBlurRadius (new)MenuBlurRadius is the blur radius of the background when a menu is openFogUniform BlockAvailable through #moj_import <minecraft:fog.glsl> for convenienceMost shaders are able to receive this uniform block, even if they don't normally use itContains FogColor, FogShape, FogStart, FogEnd, FogSkyEnd (new) and FogCloudsEnd (new)FogSkyEnd is new and represents where the fog should end when drawing for the skyFogCloudsEnd is new and represents where the fog should end when drawing the cloudsFogEnd is the "normal" fog cutoff as beforeFOG_IS_SKY is now available to the position.vsh/position.fsh shaders when they are rendering for the skyProjectionUniform BlockAvailable through #moj_import <minecraft:projection.glsl> for convenienceMost shaders are able to receive this uniform block, even if they don't normally use itContains ProjMat with no changesDynamicTransformsUniform BlockAvailable through #moj_import <minecraft:dynamictransforms.glsl> for convenienceIs no longer available to shaders that do not normally use itContains ModelViewMat, ColorModulator, ModelOffset, TextureMat, LineWidthThese are very likely to change in the near futureThe values of some of these are often hard coded and may not make sense for a given shader, ie LineWidth in any non-line based pipelineLightingUniform BlockAvailable through #moj_import <minecraft:light.glsl> for convenienceMost shaders are able to receive this uniform block, even if they don't normally use itThe values may not make sense if the shader wouldn't normally expect it, howeverContains Light0_Direction and Light1_DirectionCloudInfoUniform BlockOnly available to the clouds shaders (rendertype_clouds.vsh/rendertype_clouds.fsh)Contains CloudColor, CloudOffset and CellSize (new)CellSize contains the size of an individual cloud cellLightmapInfoUniform BlockOnly available to the lightmap shader (lightmap.fsh)Contains AmbientLightFactor, SkyFactor, BlockFactor, UseBrightLightmap, NightVisionFactor, DarknessScale, DarkenWorldFactor, BrightnessFactor, SkyLightColor with no change in behaviorFixed bugs in Minecraft snapshot 25w16aMC-104231 - Loading a custom structure doesn't load rails correctlyMC-277369 - The draft report icon isn't initially visible when saving a report as a draftMC-277370 - The draft report icon doesn't initially disappear when a report is discardedMC-279515 - The game stalls when running the "/test clearall" command with large radiusesMC-280297 - The volume level between grass and dirt is inconsistentMC-293754 - Minecraft causes OpenGL errors occasionallyMC-295395 - Entities interact differently with nether portalsMC-295677 - Title screen fades in from black after closing the "Welcome to Minecraft" screenMC-295895 - 1.21.5 breaks minecart behavior when travelling through nether portalsMC-295944 - Reloading a professionless zombie villager causes it to gain random profession clothingMC-296099 - Nether portal collision is or isn't working depending on the cardinal directionMC-296121 - ClientboundLevelChunkPacketData buffer size is too bigMC-296348 - NoAI:1b mobs cannot be ridden in 1.21.5+MC-296353 - Potions, tipped arrows, and dyed leather armor render with missing or incorrect colors in the inventoryMC-296355 - Characters in front of the cursor render one pixel too far to the leftMC-296356 - Hitbox rendering in GUIs is brokenMC-296357 - Happy ghasts produce footstep sounds when flying close above blocksMC-296358 - A player in Spectator mode on top of a happy ghast makes it stop movingMC-296363 - Scrolling in the experiments screen does not move the positions where the buttons can be selectedMC-296365 - Block placing sounds are played when the block states of completely unhydrated dried ghasts are changedMC-296366 - Kicked for flying while flying happy ghastMC-296367 - The enchantment glint in the inventory appears on all items of the same typeMC-296373 - The side faces of dried ghast tentacles aren’t culled when covered by blocksMC-296376 - Sounds produced by ghastlings can be heard from too far awayMC-296381 - Dried Ghasts always face north in world generationMC-296382 - Filled maps are blurryMC-296401 - Harnesses are not sorted correctly in the Creative InventoryMC-296419 - Spectators' names in multiplayer tab list render improperly compared to 1.21.5MC-296426 - Text background lacks opacity over hotbar iconsMC-296427 - Happy ghasts move/spin erratically when leashed to a fenceMC-296434 - Unable to see items when hovering over them inside of a bundleMC-296437 - Items render behind effect icons and recipe book inside of the inventoryMC-296444 - Blur is applied to resource pack iconsMC-296465 - Highlighting text on a sign causes it to override the sign backgroundMC-296467 - Item tooltips cause items behind it to not renderMC-296470 - Items render behind text in anvilsMC-296471 - Hud is now hidden while in bed resulting in delayed hud renderingMC-296517 - The menu panorama turns gray when the switching realm worlds interface is openMC-296518 - Text inside the middle of the java realms information box completely disappears when selectedMC-296524 - Server and singleplayer world icons are blurryMC-296638 - Clocks, compasses, and lodestone compasses do not render enchantment glint in certain display contexts when using Fabulous! graphicsMinecraft snapshot 25w16a is available for download on the official launcher. Interested players can get the latest snapshot and start experimenting with the new leash changes.