This has nothing to do with pickyness but with evolution of the ATA protocol. If the builtin scsi.device driver needs to split large transfer amounts into smaller chunks, it relies on some return values which were defined in ATA-1 specs but are no longer present in ATA-2 specs. Therefore devices which follow ATA-2 specs don't work correctly with scsi.device if too large transfer blocks are requested. Setting MaxTransfer to a small value cures this because then already the file system splits large blocks into multiple commands and scsi.device does not need to.