Faits : A. A._, ressortissant suisse né en 1986, se trouve en détention provisoire à Genève depuis le 8 juillet 2019 sous la prévention de dénonciation calomnieuse, faux dans les certificats et dans les titres, appropriation illégitime, tentative de contrainte, obtention frauduleuse d'une prestation et escroquerie. Il lui est en particulier reproché d'avoir ouvert de très nombreux comptes bancaires sur la base de faux documents, d'avoir touché des prestations indues, allocations d'impotent et remboursements de caisses maladie également grâce à de faux documents. Il fait l'objet d'une condamnation par défaut prononcée en 2013 pour des infractions similaires. Le Tribunal des mesures de contrainte (Tmc) a régulièrement prolongé la détention provisoire, précisant dans une décision du 24 décembre 2019, qu'il y avait lieu de suivre l'évolution de la procédure "notamment quant à la détermination du Ministère public sur les vérifications à l'étranger". Le 2 mars 2020, une procédure relative à une plainte déposée par une assurance maladie a été jointe. Par décision du 24 mars 2020, le Tmc a, à la requête du Ministère public, accordé une nouvelle prolongation de la détention jusqu'au 24 juin 2020, considérant que les risques de fuite, de collusion et de réitération demeuraient et que l'instruction se poursuivait avec diligence. B. Par arrêt du 22 avril 2020, la Chambre pénale de recours de la Cour de justice genevoise a confirmé cette décision, considérant que celle-ci était suffisamment motivée et que l'instruction était menée avec suffisamment de diligence, même si le recourant n'était pas entendu toutes les semaines comme il le désirait. La pandémie de Covid-19 ne justifiait pas une libération. Il existait un risque de collusion, le prévenu ayant déjà déployé des moyens intenses pour entraver l'instruction; il pouvait ainsi tenter d'influencer les trois témoins qui restaient à entendre et bloquer l'instruction par la production de faux documents. Aucune mesure de substitution n'était propre à prévenir ce risque. La durée de la détention provisoire ne dépassait pas celle de la peine susceptible d'être prononcée, compte tenu de la gravité des infractions et de leur nombre. Le Ministère public n'indiquait certes que dans sa réponse au recours les actes d'instruction qui étaient encore envisagés; il s'était aussi dispensé des explications exigées précédemment sur les vérifications à l'étranger. En outre, il avait annulé sans explication l'audience prévue le 1 er avril 2020. Une prolongation de trois mois pouvait néanmoins être accordée pour autant que les trois témoins soient entendus et qu'un rapport de police, même incomplet, soit versé à la procédure pour étayer les charges retenues jusqu'ici. C. A._ forme un recours en matière pénale par lequel il demande l'annulation de l'arrêt cantonal et le renvoi de la cause à la Chambre pénale de recours afin qu'elle prononce sa mise en liberté immédiate assortie de mesures de substitution, sous suite de frais et d'indemnité, y compris pour les jours de détention exécutés depuis la décision du Tmc. Subsidiairement, il conclut à la réduction des frais de procédure de recours (900 fr.) mis à sa charge. Après avoir tenté en vain de l'obtenir avant le dépôt du recours, il requiert l'octroi de l'assistance judiciaire. La cour cantonale se réfère à son arrêt, sans plus d'observations. Le Ministère public conclut à l'irrecevabilité du recours. En réplique, le recourant reprend les allégués de son recours et en conteste le caractère appellatoire. Il relève que l'infraction de dénonciation calomnieuse n'a fait l'objet d'aucune plainte et que les autres infractions ne seraient pas d'une gravité suffisante pour justifier son maintien en détention.