--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -293,7 +_,7 @@
         @Override
         public void start() {
             Mob owner = Vex.this.getOwner();
-            Vex.this.setTarget(owner != null ? owner.getTarget() : null);
+            Vex.this.setTarget(owner != null ? owner.getTarget() : null, org.bukkit.event.entity.EntityTargetEvent.TargetReason.OWNER_ATTACKED_TARGET); // CraftBukkit
             super.start();
         }
     }
@@ -352,7 +_,10 @@
 
             for (int i = 0; i < 3; i++) {
                 BlockPos blockPos = boundOrigin.offset(Vex.this.random.nextInt(15) - 7, Vex.this.random.nextInt(11) - 5, Vex.this.random.nextInt(15) - 7);
-                if (Vex.this.level().isEmptyBlock(blockPos)) {
+                // Paper start - Don't load chunks
+                final net.minecraft.world.level.block.state.BlockState blockState = Vex.this.level().getBlockStateIfLoaded(blockPos);
+                if (blockState != null && blockState.isAir()) {
+                    // Paper end - Don't load chunks
                     Vex.this.moveControl.setWantedPosition(blockPos.getX() + 0.5, blockPos.getY() + 0.5, blockPos.getZ() + 0.5, 0.25);
                     if (Vex.this.getTarget() == null) {
                         Vex.this.getLookControl().setLookAt(blockPos.getX() + 0.5, blockPos.getY() + 0.5, blockPos.getZ() + 0.5, 180.0F, 20.0F);
