Currently when you have two datasets that have some fields set to not be visible and you join them using a Spatial Join the result shows all the fields from the two layers by default.
Please honour field visibility when adding joins.
Yes - the option exists to select which fields to show during the Join process but why do the same thing twice?
Option - add tick boxes in the Field Map and set these using current visibility settings - we can then customise as needed but won't have to deselect fields not required again.