I've got a questionnaire in which I'm asking participants to rate 17 countries on eight different rating scales each (scale 1-7). I'm now interested in finding out which countries are similar to each other in their rating profiles and ideally find groups of countries that are perceived similarly in some way.
The dataset will look something like this:

Visually, I think I can do this by comparing distributions of ratings for each country to the others (e.g., with a graph of multiple boxplots for each country), but I'd prefer if there was some way to identify these patterns statistically.
The only workarounds I can come up with involve the loss of data:
Option 1 factor analysis: I could combine ratings for each country into one index (if similar enough) and run a factor analysis, but I would lose nuance in the different ratings for each country. This would look like that:
Option 2 clustering/latent class: I could compute the means for each country and each rating scale and then run a latent class or cluster analysis among the countries. But then I'd lose the individual data points, with just the mean as a crude summary:
(Ideally, I'd want to do something like this but with the full distributions rather than means...)
Does anyone know of a better solution which makes use of all the available data? Thanks so much in advance, every tip is appreciated.
EDIT: thank you for the suggestions for similar questions. My problem is that I have multiple ratings for each of the objects that I'd like to group objects, which is more than simple factor analysis or cluster analysis can do as far as I know.

